Найти в Дзене
Coding Corner

Анонс нового видео по созданию API на языке Rust.

Оглавление

Всем привет,

Cегодня я хотел бы рассказать о идее моего следующего видео и о том, как я к этому пришел.

И начну с ситуации, которая произошла со мной где-то пол года назад.

Я делал пет проект, концепция которого была очень простая - человек делает запрос в текстовом поле - искусственный интеллект генерирует подборку из фильмов, которые похожи на запрашиваемый и потом в карточках представляет это с постером фильма и всей дополнительной информацией.

Мне нужно было API от IMDB, там был бесплатный лимит - 100 запросов. И естественно, закончились они очень быстро во время тестирования (с учетом того, как часто перезагружается canvas в SwiftUI :D ) Пришлось создавать кучу фейковых аккаунтов, заводить отдельный файл с ними. В общем, куча нервов и потерянного времени....

После того как я воплотил задуманное появилась необходимость расширяться, я узнал об одной фишке, которая позволяет открывать фильм в бесплатном плеере сразу по ссылке. Я сразу понял, что было бы круто после получения подборки фильмов на маке по одному нажатию сразу открывать его бесплатно в браузере для просмотра. Но нужен был id фильма с КиноПоиска. Пришлось интегрировать сторонний API тоже для достижения цели.

К чему я это все....

В какой то момент я понял, что эти API накладывают серьезные ограничения. Где-то есть лимиты, где-то я не могу просто по ним получить необходимую информацию (хотя такое бывает редко), где-то даже если API действительно хорошее - нет возможности заплатить из-за СВО, где-то API просто нет.

И тут мне пришла в голову мысль, если я делаю парсеры на Rust-е почему бы не попробовать на нем же поднять свое API и интегрировать в проект, который я сейчас пишу.

Почитал в web-e по этому вопросу, выбор пал на фреймворк warp, его рекомендовали как самый доступный для понимания и простой. Но все оказалось не так просто :D

Был еще Actix-Web, не знаю почему не выбрал. Наверное потому что по поставленной задаче было больше информации именно о warp-e.

У меня заняло совсем немного времени чтобы настроить API на обработку GET запроса и отдачу необходимых данных в JSON формате, которые были собраны с нужного сайта. Это было действительно не сложно. Но по мере расширения я столкнулся с тем, что этого недостаточно и нужно научиться обрабатывать POST запросы, получать информацию из тела request-a. И вот тут возникли трудности, однако разобрался по итогу.

И готов поделиться этим с вами.

Итоги :

Скажу честно, было непросто - но оно того стоило! Самое главное преимущество для себя увидел в том, что API отдает только нужную мне информацию, в удобном для меня формате (больше нет нужды рассматривать это дерево с кучей ветвлений) и самое главное - без всяких лимитов. И самому приятно от осознания того, что сделал все под себя :)

Благодарю за внимание,

Видео выложу до 10 августа. Возможно, что раньше - я как ответственный человек всегда беру чуть больше времени на всякий случай :)