Ищите и фильтруйте шоу и фильмы на Netflix с помощью API ReelGood.
Сделано с:
Это приложение в настоящее время не работает — компания ReelGood перешла на использование API версии 3 на своем сайте, и API версии 2 больше не работает. Если вы хотите выяснить, как можно использовать новые конечные точки API, и разместить PR, пожалуйста, сделайте это.
См. выпуск №5.
Пока что этот проект просто представляет одну страницу результатов API в виде текста и изображений с использованием шаблонов.
Нет никаких сложных отчетов или фильтрации.
Также я мог бы перестроить это в Vue вместо Mustache.
ReelGood — это сервис, который предоставляет список телешоу и фильмов во многих онлайн-сервисах, включая Netflix.
У ReelGood на веб-сайте отличный графический интерфейс, по которому легко ориентироваться при поиске и фильтрации. Они также используют API как часть этого. Я хотел создать свои собственные отчеты и список рекомендаций, поэтому я извлекаю данные из их API с помощью клиентского JS и отображаю их на веб-сайте.
Посмотреть сайт:
Если вы новичок в Netlify/Lambda Functions, прочтите мою кулинарную книгу.
Протестируйте конечную точку JSON API напрямую:
Клонировать репо:
$ git clone [email protected]:MichaelCurrin/netflix-assistant.git
$ cd netflix-assistant
Никаких этапов сборки и установки нет!
Продолжить ниже.
Использование бессерверной обработки запросов API
Это приложение не может выполнять запросы браузера напрямую через ReelGood API (локально это нормально, но на развернутом сайте вы получаете сообщение об ошибке). При изменении API возникают ошибки CORS.
Поэтому это приложение было переработано для использования бесплатной функции функций Netlify (созданной на основе AWS Lambda).
Функция определяется с помощью короткого сценария JS и размещается на Netlify. Когда запрос выполняется к конечной точке этой функции, выполняется запрос к API ReelGood, и результат возвращается в виде кэшированного ответа JSON.
Это намного проще, чем создание API Python или Node, поскольку для этого требуется гораздо больше кода, и его нельзя разместить на Netlify.
Недостатком является то, что функция работает только в облаке, а не на локальном сервере.
Есть несколько способов обойти это:
http
, и просто добавить дополнительную строку для вызова JS-скрипта на определенной конечной точке — это означает, что вам нужен только один сервер и один порт.Обратите внимание, что локальное использование ограничено — см. раздел выше.
Запустите веб-сервер в корневом каталоге.
См. подходы в этой сути или используйте подход ниже.
$ python3 -m http.server
Открыть в браузере. например
В этом проекте есть базовый сценарий оболочки, который использует Bash и cURL для получения данных из API ReelGood.
Вместо использования функции по требованию, как описано выше, этот подход заключается в очистке данных из API и сохранении их в виде данных JSON, которые можно оставить в развернутом приложении или передать в систему контроля версий, если вас это волнует. Затем внешний интерфейс сможет использовать эти данные, что будет намного быстрее, поскольку вся подкачка уже обработана. За счет слегка устаревших данных и запроса большого статического файла JSON. Можно провести некоторую очистку, чтобы файл JSON содержал только интересующие поля.
Этот скрипт получает из API первые две страницы шоу, где оценки IMDB и ReelGood превышают 50%. Если вы хотите разумно перелистывать страницы, рекомендуется использовать более сложную обработку с помощью Python или аналогичного инструмента, то есть заменять более высокое значение skip
до тех пор, пока страниц не останется.
Запустить как:
$ cd scrape
$ ./get_shows.sh
Затем просмотрите файлы JSON, созданные в подкаталоге out
.
Удаленная настройка
Этот репозиторий можно бесплатно развернуть на Netlify — как статический веб-сайт плюс функции Netlify для бессерверных внутренних вызовов внешнего API.
Заголовок CORS должен быть установлен для запросов API, и его невозможно установить на страницах Github. Кроме того, здесь используется функция Netlify, которую GitHub Pages не поддерживает.
На сайте ReelGood есть просмотр телешоу и фильмов, доступных для потоковой передачи на Netflix.
Страница поддерживает параметры фильтра, параметры заказа и параметры формата отображения.
Данные шоу извлекаются из API ReelGood.
Это делается при начальной загрузке страницы, когда вы применяете фильтрацию/сортировку, а также когда вы нажимаете «Загрузить больше» внизу страницы.
API можно использовать бесплатно, и на странице часто задаваемых вопросов они предоставляют подробную информацию о запросе доступа к API. Я обнаружил, что без необходимости писать им по электронной почте доступ к API прост. Я еще не нашел для него документации, поэтому я сравниваю выбор графического интерфейса с сделанными запросами API и делаю вывод, как работают поля в запросах API и что означают поля ответа.
$.getJSON
(интерфейс) и axios
(функция), чтобы упростить проект.Чтобы избежать ошибок CORS, этот проект использует функцию Lambda в Netlify для запроса данных на стороне сервера, а затем делает данные доступными в том же домене, что и запрос браузера.
См. функцию Netlify.
См. также сообщение в блоге.
Локальная установка может использовать библиотеку Netlify или просто запасной вариант использования исходного URL-адреса (который, к счастью, не выдает ошибок CORS на локальном хосте, даже если это происходит на Netlify) на основе такого флага, как ENV=dev
или local/remote.
Выпущено под руководством MIT @MichaelCurrin.