@openmoviedb/kinopoiskdev_client
v1.3.10
Published
JS/TS для API kinopoisk.dev
Downloads
108
Maintainers
Readme
TS/JS клиент для kinopoisk.dev API (@openmoviedb/kinopoiskdev_client)
Эта библиотека позволяет взаимодействовать с неофициальным API kinopoisk, обеспечивая удобный доступ к таким сущностям как:
- Фильмы (movie)
- Сезоны (season)
- Персоны (person)
- Ключевые слова (keyword)
- Студии (studio)
- Изображения (image)
- Отзывы (review)
Начало работы
- Получите токен у телеграм бота @kinopoiskdev_bot.
- Изучите документацию. Она выполнена в формате OpenAPI и поможет вам понять, какие данные можно получить и какие параметры можно передать в запросе.
Установка
Установите библиотеку через npm:
npm i @openmoviedb/kinopoiskdev_client
или yarn:
yarn add @openmoviedb/kinopoiskdev_client
Использование
Сначала инициализируйте клиент и передайте в него ваш токен:
import { KinopoiskDev } from '@openmoviedb/kinopoiskdev_client';
const kp = new KinopoiskDev('ВАШ ТОКЕН');
Взаимодействие с сущностями
После инициализации клиента вы можете начать взаимодействовать с различными сущностями. Вот пример того, как можно получить информацию о фильме по его ID:
const {data} = await kp.movie.getById(666);
console.log(data);
Использование Query Builder
QueryBuilder это специальный инструмент, который помогает вам создавать сложные запросы без написания их вручную. QueryBuilder позволяет вам добавлять различные параметры в ваш запрос, такие как сортировка, фильтрация, пагинация и выбор конкретных полей для возвращения. Этот инструмент валидирует поля, которые вы передаете, и подсвечивает подсказки, что облегчает использование.
Вот пример использования QueryBuilder для получения списка фильмов с определенными параметрами:
import {
KinopoiskDev,
MovieQueryBuilder,
SPECIAL_VALUE,
SORT_TYPE,
} from '@openmoviedb/kinopoiskdev_client';
const kp = new KinopoiskDev('ВАШ ТОКЕН');
const getRelatedByQueryBuilderMovies = async () => {
const queryBuilder = new MovieQueryBuilder();
const query = queryBuilder
.select(['id', 'name', 'rating', 'poster', 'year'])
.filterRange('year', [2020, 2023])
.filterRange('rating.kp', [7.5, 10])
.filterExact('poster.url', SPECIAL_VALUE.NOT_NULL)
.sort('rating.kp', SORT_TYPE.DESC)
.paginate(1, 10)
.build();
const { data, error, message } = await kp.movie.search(query);
console.log(data, error, message);
};
getRelatedByQueryBuilderMovies();
Обратите внимание, что QueryBuilder совместим с axios и другими HTTP клиентами. Если вам нужно использовать другой HTTP клиент, вы можете сделать это. Библиотека предоставляет все необходимые типы для этого.
Также вы можете взаимодействовать с API без использования QueryBuilder, просто составив запрос самостоятельно или в интерфейсе документации API. Пример:
import { KinopoiskDev, Filter, MovieFields } from '@openmoviedb/kinopoiskdev_client';
const kp = new KinopoiskDev('ВАШ ТОКЕН');
const getRelatedWithoutQueryBuilderMovies = async () => {
const query: Filter<MovieFields> = {
selectFields: ['id', 'name', 'rating', 'poster', 'year'],
year: '2020-2023',
'rating.kp': '7.5-10',
'poster.url': '!null',
sortField: 'rating.kp',
sortType: '-1',
page: 1,
limit: 10,
};
const { data, error, message } = await kp.movie.getByFilters(query);
console.log(data, error, message);
};
getRelatedWithoutQueryBuilderMovies();
Подробные примеры
Для более детальных примеров использования библиотеки, пожалуйста, обратитесь к директории examples в репозитории проекта. Там вы найдете примеры работы с каждой из доступных сущностей.