# #17 Проектирование REST API / OpenAPI (TypeSpec) / Кеширование / Денис Семененко

An episode of [Организованное программирование](https://invisiblenetwork.ai/podcast/1734325321), 31 Oct 2024, 1 h 41 min.

Audio: https://api.mave.digital/storage/podcasts/ec5504bc-6dde-4621-95b4-227d29af0aa9/episodes/b54497d6-4cde-461f-b169-865f901bae8f.mp3

В этом выпуске мы с Денисом Семененко, 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 00:00 Обсуждение REST и API 08:55 Инструменты и спецификации для API 12:44 Инновации в программировании с Closure 20:09 TypeSpec: Будущее описания API 24:47 Сравнение подходов к описанию API 29:54 Сравнение OpenAPI и альтернативных решений 34:36 Книга Сергея Константинова и мифология REST 39:11 Понимание hateOS и его значение 42:07 Гипермедиа и его роль в вебе 44:31 Динамическое построение интерфейсов 46:54 Проблемы с реализацией API 48:54 Преимущества REST по сравнению с RPC 51:18 Перемещение логики на промежуточный сервер 54:33 Стандарты обработки ошибок в API 59:45 Сравнение JSON API и GraphQL 01:04:31 Проблемы упаковки данных в JSON 01:07:41 Форматы сообщений и обратная совместимость 01:10:42 Семантический веб и его влияние на API 01:12:56 Гибкое выборочное представление контента 01:14:53 Разнообразие форматов API и их применение 01:17:05 Стандарты API и их эволюция 01:20:40 Выбор технологий для построения API 01:23:52 Frontend и API: как строить взаимодействие 01:25:49 ГрафQL: хайп и реальность 01:29:11 Проблемы и ограничения GraphQL 01:29:42 Оптимизация REST API и его преимущества 01:30:12 Знакомство с Ransack и его концепцией 01:31:14 Фильтрация данных и ее сложности 01:32:53 Преимущества Ransack в фильтрации 01:35:34 Использование Doreos и Grape для API 01:37:14 Валидация данных и ее уровни 01:39:35 Проектирование микросервисов и Domain Driven Design ★ Support this podcast ★

Shows are listed from Apple Podcasts' charts and directory, and Podcast Index where it is used. Every show and episode belongs to its publisher and plays from the publisher's own feed; this site hosts none of them.
