{"type":"rich","version":"1.0","provider_name":"Transistor","provider_url":"https://transistor.fm","author_name":"Организованное программирование","title":"#17 Проектирование REST API / OpenAPI (TypeSpec) / Кеширование / Денис Семененко","html":"<iframe width=\"100%\" height=\"180\" frameborder=\"no\" scrolling=\"no\" seamless src=\"https://share.transistor.fm/e/a4c9582d\"></iframe>","width":"100%","height":180,"duration":6079,"description":"В этом выпуске мы с Денисом Семененко, Principal Software Engineer в DocGo, обсуждаем разработку REST API, спецификации, преимущества и недостатки инструментов типа TypeBox и TypeSpec, и как понимание всех этих аспектов влияет на процесс проектирования.✅ Подписывайтесь на канал «Организованное программирование» в Telegram– Список подкаст-платформ (Apple Podcast, Google Podcast, Spotify, Яндекс.Музыка и другие)– Смотреть в ВК Видео– Мы затронем исторический контекст REST, его ограничения и концепцию HATEOAS для построения гибких интерфейсов. Также рассмотрим, как REST и RPC решают схожие задачи и чем отличаются JSON API и GraphQL, поговорим про OpenAPI и Async API, стандарты обработки ошибок, перемещение логики на промежуточные серверы и разделение ответственности между клиентом и сервером. В общем в этом эпизоде очень много о программировании и архитектуре.Полезные ссылки:Твиттер Дениса: https://twitter.com/denblackstacheТред про REST API: https://x.com/mokevnin/status/1824512290793853328Hypermedia 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.html00:00 Обсуждение REST и API08:55 Инструменты и спецификации для API12:44 Инновации в программировании с Closure20:09 TypeSpec: Будущее описания API24:47 Сравнение подходов к описанию API29:54 Сравнение OpenAPI и альтернативных решений34:36 Книга Сергея Константинова и мифология REST39:11 Понимание hateOS и его значение42:07 Гипермедиа и его роль в вебе44:31 Динамическое построение интерфейсов46:54 Проблемы с реализацией API48:54 Преимущества REST по сравнению с RPC51:18 Перемещение логики на промежуточный сервер54:33 Стандарты обработки ошибок в API59:45 Сравнение JSON API и GraphQL01:04:31 Проблемы упаковки данных в JSON01:07:41 Форматы сообщений и обратная совместимость01:10:42 Семантический веб и его влияние на...","thumbnail_url":"https://img.transistorcdn.com/xJ6sbDf6lXFRx9kuECQNfM79GCOXHQvXm41V-61Bx9w/rs:fill:0:0:1/w:400/h:400/q:60/mb:500000/aHR0cHM6Ly9pbWct/dXBsb2FkLXByb2R1/Y3Rpb24udHJhbnNp/c3Rvci5mbS81ZDAw/NDMwOGMzMzY2MjEx/NmJmZTA3ZTg1ZjFi/MmFjYi5wbmc.webp","thumbnail_width":300,"thumbnail_height":300}