В этом выпуске мы с Денисом Семененко, Principal Software Engineer в DocGo, обсуждаем разработку REST API, спецификации, преимущества и недостатки инструментов типа TypeBox и TypeSpec, и как понимание всех этих аспектов влияет на процесс проектирования.
✅ Подписывайтесь на канал «Организованное программирование» в Telegram
– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие)
– Смотреть в ВК Видео
– Смотреть в Youtube
Мы затронем исторический контекст REST, его ограничения и концепцию HATEOAS для построения гибких интерфейсов. Также рассмотрим, как REST и RPC решают схожие задачи и чем отличаются JSON API и GraphQL, поговорим про OpenAPI и Async API, стандарты обработки ошибок, перемещение логики на промежуточные серверы и разделение ответственности между клиентом и сервером. В общем в этом эпизоде очень много о программировании и архитектуре.
Полезные ссылки:
- Твиттер Дениса: https://twitter.com/denblackstache
- Тред про REST API: https://x.com/mokevnin/status/1824512290793853328
- Hypermedia Factors. Факторы для сравнения разных message formats между собой
http://amundsen.com/hypermedia/hfactor/ - AsyncAPI https://www.asyncapi.com/
- OpenAPI Tools https://openapi.tools/
- Книга Сергея Константинова https://twirl.github.io/The-API-Book/API.en.html
Обсуждение REST и API
Инструменты и спецификации для API
Инновации в программировании с Closure
TypeSpec: Будущее описания API
Сравнение подходов к описанию API
Сравнение OpenAPI и альтернативных решений
Книга Сергея Константинова и мифология REST
Понимание hateOS и его значение
Гипермедиа и его роль в вебе
Динамическое построение интерфейсов
Проблемы с реализацией API
Преимущества REST по сравнению с RPC
Перемещение логики на промежуточный сервер
Стандарты обработки ошибок в API
Сравнение JSON API и GraphQL
Проблемы упаковки данных в JSON
Форматы сообщений и обратная совместимость
Семантический веб и его влияние на API
Гибкое выборочное представление контента
Разнообразие форматов API и их применение
Стандарты API и их эволюция
Выбор технологий для построения API
Frontend и API: как строить взаимодействие
ГрафQL: хайп и реальность
Проблемы и ограничения GraphQL
Оптимизация REST API и его преимущества
Знакомство с Ransack и его концепцией
Фильтрация данных и ее сложности
Преимущества Ransack в фильтрации
Использование Doreos и Grape для API
Валидация данных и ее уровни
Проектирование микросервисов и Domain Driven Design



