В подборке 12 курсов по REST API: проектирование данных, разработка на Python и PHP, права доступа и тестирование. Цены — от 178 до 794 ₽. Для первого знакомства подойдёт «Стань экспертом по API! RESTful Web Services» за 190 ₽; для Laravel — курс Povilas Korop за 238 ₽; для автоматизации проверок — материал по Postman за 236 ₽.
Выбирайте материал по задаче и знакомому языку. В подборке есть отдельные курсы по Flask, FastAPI, Django REST Framework, Laravel и Symfony API Platform. Изучать все фреймворки подряд не нужно: после общих принципов можно перейти к одному из них, а затем проверить полученный сервис через Postman.
Понять HTTP и спроектировать данные
Если пока трудно различать метод запроса, заголовок и тело ответа, начните с обзорного материала по веб-сервисам. Курс по XML и JSON решает другую задачу: помогает разобраться со структурой передаваемых данных и схемами. Эти материалы можно изучать до выбора серверного фреймворка.
В программе сопоставлены REST и SOAP, разобраны методы HTTP, коды состояния и заголовки. Практическая часть включает запросы в Postman и взаимодействие с API на Python; отдельный блок посвящён OAuth и OpenID Connect. Подойдёт для знакомства с устройством веб-сервисов.
Татьяна Тимина разбирает XML, схемы XSD и валидацию, затем сравнивает XML с JSON. Материал полезен для задачи проектирования форматов обмена: здесь внимание уделено структуре данных, а не освоению конкретного серверного фреймворка.
Разработать сервис на Python
Для знакомства с Flask выбран курс, в котором разработка связана с базой данных и функциональными проверками. В FastAPI акцент сделан на асинхронном коде и внешних сервисах. Два материала по Django REST Framework различаются практикой: учебный клон Reddit у Ника Уолтера и более подробная работа с выдачей данных, фильтрами и отношениями во втором курсе.
Разработка на Flask соединена с проверкой запросов в Postman и функциональным тестированием в SoapUI. В программу входят SQLAlchemy, аутентификация, сеансы и работа с файлами. Можно выбрать этот курс, чтобы рассмотреть API в составе веб-приложения с базой данных.
У Ines Ivanova-Kenova REST API на FastAPI дополнен PostgreSQL, JWT и валидацией через Pydantic. Отдельные разделы посвящены async-await, файлам в AWS S3 и отправке почты через Amazon SES. Курс подходит для разбора сервиса с несколькими внешними интеграциями.
Ник Уолтер использует учебный клон Reddit: через API создаются и удаляются сообщения, добавляется голосование. После этого разбираются подключение API к существующему Django-проекту и проверка запросов через Curl. Удобный выбор для практики на понятной модели данных.
Фильтрация, поиск и пагинация разобраны вместе с вложенными отношениями и сериализаторами Django REST Framework. В программе также есть токены и пользовательские разрешения. Выбирайте материал, если важнее организация выдачи данных, чем знакомство с синтаксисом Python.
Создать API на Laravel и Symfony
Если рабочий проект уже написан на PHP, выбирайте курс под его фреймворк. Два материала по Laravel посвящены созданию API, но у Povilas Korop отдельно перечислены способы авторизации и инструменты документации. Ветка Symfony разделена на устройство ресурсов API Platform 3 и настройку доступа к ним: второй материал удобнее изучать после первого.
Курс сосредоточен на REST API в Laravel: запросах к базе данных и взаимодействии с клиентской частью. Это более узкий вариант среди PHP-материалов подборки. В опубликованной программе нет отдельного блока по контейнерам или настройке непрерывной интеграции.
Povilas Korop последовательно рассматривает запросы GET/POST, ресурсы API и валидацию в Laravel. Авторизация разобрана через Sanctum и Passport, документация — через Scribe и OpenAPI/Swagger. Материал подходит для задачи описать и проверить API вместе с его реализацией.
В API Platform 3 разбираются публикация ресурсов Symfony, настройка операций и сериализация полей. Далее идут связи, подресурсы, фильтрация, пагинация и согласование форматов. Полезен тем, кто хочет собрать API на этой платформе и управлять составом ответа.
Продолжение по API Platform 3 посвящено доступу к данным: токенам со scopes, Voter и полям, видимым в зависимости от разрешений. Есть интеграционные тесты, автоматическое назначение владельца объекта и фильтрация коллекций по владельцу. Имеет смысл после знакомства с ресурсами платформы.
Добавить автоматические проверки
Тесты сервера и проверки через HTTP дополняют друг друга. В курсе Michael Herman тесты пишутся вместе с FastAPI-приложением; Postman позволяет собрать коллекцию запросов и запускать проверки отдельно от серверного кода. Выбор зависит от роли: разработчику FastAPI полезен первый вариант, для проверки готового API можно начать со второго.
Michael Herman строит асинхронный RESTful API с тестами pytest и PostgreSQL, затем помещает приложение в Docker. Во второй части разбирает GitHub Actions, мокирование и параметризацию тестов. Выбор для тех, кому нужен процесс проверки и сборки FastAPI-проекта.
Вместо разработки сервера здесь изучают проверки API: коллекции Postman, тестирование на наборах данных и скрипты JavaScript. В программу входят BASIC/OAUTH и консольный запуск через Newman. Материал можно использовать для проверки сервиса на любом из фреймворков подборки.
Маршрут: от запроса до проверенного сервиса
- Разберите методы HTTP и форматы сообщений в «Стань экспертом по API! RESTful Web Services». Если задача связана с проектированием данных, добавьте материал Татьяны Тиминой про XML, JSON и XSD.
- Выберите одну реализацию: клон Reddit у Ника Уолтера для Django REST Framework, курс Ines Ivanova-Kenova для FastAPI или материал Povilas Korop для Laravel. Сопоставьте программу с языком своего проекта.
- Для Symfony начните с «API Platform 3: Mythically Good RESTful APIs», затем переходите к «Security for your Treasures». Так настройка прав доступа будет опираться на уже знакомые ресурсы и операции.
- Соберите проверки запросов по курсу Postman. Для FastAPI дополните их тестами pytest и сборкой Docker из материала Michael Herman. Проверяйте не только успешный ответ, но и поведение при неверных данных и недостаточных разрешениях.
В программах встречаются конкретные версии платформ и внешние сервисы. Перед выбором сопоставьте их со своим проектом: материал по API Platform 3 не равнозначен общему курсу по Symfony, а курс по Django REST Framework не заменяет основы Python. Покупать несколько вводных курсов с одинаковой задачей обычно не требуется — сначала определите, какой результат нужен в текущем проекте.