2022-07-07 00:41:03 +03:00
2022-06-23 23:28:55 +03:00
<!DOCTYPE html>
< html >
2022-07-07 00:41:03 +03:00
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1" / >
2022-07-10 23:34:14 +03:00
< link rel = "icon" type = "image/png" href = "assets/favicon.png" / >
2022-07-07 00:41:03 +03:00
< title >
2022-07-08 22:08:14 +03:00
Сергей Константинов. API
2022-07-07 00:41:03 +03:00
< / title >
< meta
name="description"
2023-04-10 23:03:07 +03:00
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и REST, SDK и UI-библиотекам, продуктовому управлению API."
2022-07-07 00:41:03 +03:00
/>
< meta property = "og:type" content = "article" / >
< meta
property="og:title"
2022-07-08 22:08:14 +03:00
content="Сергей Константинов. API"
2022-07-07 00:41:03 +03:00
/>
< meta
property="og:description"
2023-04-10 23:03:07 +03:00
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и REST, SDK и UI-библиотекам, продуктовому управлению API."
2022-07-07 00:41:03 +03:00
/>
< meta property = "og:image" content = "assets/header.png" / >
< meta
property="og:url"
content="https://github.com/twirl/The-API-Book"
/>
2022-07-31 15:08:37 +03:00
< link rel = "stylesheet" href = "assets/landing.css" / >
2022-07-07 00:41:03 +03:00
< / head >
< body >
< nav >
< img
2022-07-31 15:08:37 +03:00
class="header"
2022-07-07 00:41:03 +03:00
src="assets/header.jpg"
2022-07-08 22:08:14 +03:00
alt="Сергей Константинов. API"
2022-07-07 00:41:03 +03:00
/>< br / >
2022-07-08 22:08:14 +03:00
< h1 > Сергей Константинов< br / > < span class = "title" > API< / span > < / h1 >
2022-07-07 00:41:03 +03:00
< h2 > Бесплатная электронная книга< / h2 >
2022-08-27 23:07:11 +03:00
< br / > Подпишитесь на обновления на < a class = "habr" href = "https://habr.com/ru/users/forgotten/" > Хабре< / a >
2023-04-30 23:13:11 +03:00
< br / > Follow me on < a class = "linkedin" href = "https://www.linkedin.com/in/twirl/" > < / a > · < a class = "twitter" href = "https://twitter.com/blogovodoved" > < / a > · < a class = "substack" href = "https://twirl.substack.com/" > Substack< / a >
2022-07-07 00:41:03 +03:00
< br / > Поддержите эту работу на < a class = "patreon" href = "https://www.patreon.com/yatwirl" > Patreon< / a >
2023-04-25 10:35:00 +03:00
< br / > Поделиться: < a class = "share share-facebook" href = "https://www.facebook.com/sharer.php?u=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2Findex.ru.html" target = "_blank" > < / a > · < a class = "share share-twitter" href = "https://twitter.com/intent/tweet?text=%C2%ABAPI%C2%BB%20%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D1%8F%20%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD%D0%BE%D0%B2%D0%B0%20%E2%80%94%20%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0%20%D0%BE%20%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B5%20API%20%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D0%BE%D0%B2%D0%BE%D0%BC%20%D0%B8%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%BC%20%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B8&url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2Findex.ru.html&hashtags=API%2CTheAPIBook&via=blogovodoved" target = "_blank" > < / a > · < a class = "share share-linkedin" href = "https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2Findex.ru.html" target = "_blank" > < / a > · < a class = "share share-reddit" href = "http://www.reddit.com/submit?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2Findex.ru.html&title=%C2%ABAPI%C2%BB%20%D0%A1%D0%B5%D1%80%D0%B3%D0%B5%D1%8F%20%D0%9A%D0%BE%D0%BD%D1%81%D1%82%D0%B0%D0%BD%D1%82%D0%B8%D0%BD%D0%BE%D0%B2%D0%B0%20%E2%80%94%20%D0%BA%D0%BD%D0%B8%D0%B3%D0%B0%20%D0%BE%20%D0%B4%D0%B8%D0%B7%D0%B0%D0%B9%D0%BD%D0%B5%20API%20%D0%B8%20%D0%B5%D0%B3%D0%BE%20%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82%D0%BE%D0%B2%D0%BE%D0%BC%20%D0%B8%20%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%BC%20%D1%80%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B8" target = "_blank" > < / a > < br / > ⚙️⚙️⚙️
2022-07-07 00:41:03 +03:00
< / nav >
2023-05-22 20:58:51 +03:00
< p > «API-first» подход — одна из самых горячих горячих тем в разработке программного обеспечения в наше время. Многие компании начали понимать, что API выступает мультипликатором их возможностей — но также умножает и допущенные ошибки.< / p >
2023-04-10 23:03:07 +03:00
< p > Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых:< / p >
< ul > < li > — проектированию API,< / li >
< li > — паттернам дизайна API,< / li >
< li > — поддержанию обратной совместимости,< / li >
< li > — HTTP API и REST,< / li >
< li > — SDK и UI-библиотекам,< / li >
< li > — продуктовому управлению API.< / li > < / ul >
2022-07-31 15:08:37 +03:00
< p > Иллюстрации и вдохновение: Maria Konstantinova · < a href = "https://www.instagram.com/art.mari.ka/" > art.mari.ka< / a > .< / p >
2023-05-01 14:49:19 +03:00
< p > Вы можете скачать книгу «API» в формате < a href = "API.ru.pdf" > PDF< / a > / < a href = "API.ru.epub" > EPUB< / a > или < a href = "API.ru.html" > прочитать её онлайн< / a > .
2022-07-07 00:41:03 +03:00
< / p >
< h3 > Содержание< / h3 >
< ul > < li >
< h4 > < a href = "API.ru.html#section-1" > Введение< / a > < / h4 >
2022-06-23 23:28:55 +03:00
< ul >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#intro-structure" > Глава 1. О структуре этой книги< / a > < / li >
2023-04-07 19:56:48 +03:00
< li > < a href = "API.ru.html#intro-api-definition" > Глава 2. Определение API< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#intro-api-solutions-overview" > Глава 3. Обзор существующих решений в области разработки API< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#intro-api-quality" > Глава 4. Критерии качества API< / a > < / li >
< li > < a href = "API.ru.html#intro-api-first-approach" > Глава 5. API-first подход< / a > < / li >
< li > < a href = "API.ru.html#intro-back-compat" > Глава 6. Обратная совместимость< / a > < / li >
< li > < a href = "API.ru.html#intro-versioning" > Глава 7. О версионировании< / a > < / li >
< li > < a href = "API.ru.html#intro-terms-notation" > Глава 8. Условные обозначения и терминология< / a > < / li >
2022-07-07 00:41:03 +03:00
< / ul >
2022-06-23 23:28:55 +03:00
< / li >
2022-07-07 00:41:03 +03:00
< li >
< h4 > < a href = "API.ru.html#section-2" > Раздел I. Проектирование API< / a > < / h4 >
2022-06-23 23:28:55 +03:00
< ul >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-design-context-pyramid" > Глава 9. Пирамида контекстов API< / a > < / li >
< li > < a href = "API.ru.html#api-design-defining-field" > Глава 10. Определение области применения< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#api-design-separating-abstractions" > Глава 11. Разделение уровней абстракции< / a > < / li >
< li > < a href = "API.ru.html#api-design-isolating-responsibility" > Глава 12. Разграничение областей ответственности< / a > < / li >
< li > < a href = "API.ru.html#api-design-describing-interfaces" > Глава 13. Описание конечных интерфейсов< / a > < / li >
< li > < a href = "API.ru.html#api-design-annex" > Глава 14. Приложение к разделу I. Модельный API< / a > < / li >
2022-07-07 00:41:03 +03:00
< / ul >
2022-06-23 23:28:55 +03:00
< / li >
2022-07-07 00:41:03 +03:00
< li >
2023-04-10 23:03:07 +03:00
< h4 > < a href = "API.ru.html#section-3" > [В разработке] Раздел II. Паттерны дизайна API< / a > < / h4 >
2022-06-23 23:28:55 +03:00
< ul >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-15" > Глава 15. О паттернах проектирования в контексте API< / a > < / li >
< li > < a href = "API.ru.html#api-patterns-aa" > Глава 16. Аутентификация партнёров и авторизация вызовов API< / a > < / li >
< li > < a href = "API.ru.html#api-patterns-sync-strategies" > Глава 17. Стратегии синхронизации< / a > < / li >
2023-04-28 10:15:37 +03:00
< li > < a href = "API.ru.html#api-patterns-weak-consistency" > Глава 18. Слабая консистентность< / a > < / li >
2023-05-06 17:40:40 +03:00
< li > < a href = "API.ru.html#api-patterns-async" > Глава 19. Асинхронность и управление временем< / a > < / li >
< li > < a href = "API.ru.html#api-patterns-lists" > Глава 20. Списки и организация доступа к ним< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-patterns-push-vs-poll" > Глава 21. Двунаправленные потоки данных. Push и poll-модели< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#api-patterns-async-event-processing" > Глава 22. Мультиплексирование сообщений. Асинхронная обработка событий< / a > < / li >
2023-05-23 00:22:07 +03:00
< li > < a href = "API.ru.html#api-patterns-atomicity" > Глава 23. Атомарность массовых изменений< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-24" > Глава 24. Частичные обновления< / a > < / li >
< li > < a href = "API.ru.html#chapter-25" > Глава 25. Деградация и предсказуемость< / a > < / li >
2022-07-07 00:41:03 +03:00
< / ul >
2022-06-23 23:28:55 +03:00
< / li >
2022-07-07 00:41:03 +03:00
< li >
2023-04-10 00:51:45 +03:00
< h4 > < a href = "API.ru.html#section-4" > Раздел III. Обратная совместимость< / a > < / h4 >
2022-06-23 23:28:55 +03:00
< ul >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#back-compat-statement" > Глава 26. Постановка проблемы обратной совместимости< / a > < / li >
< li > < a href = "API.ru.html#back-compat-iceberg-waterline" > Глава 27. О ватерлинии айсберга< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#back-compat-abstracting-extending" > Глава 28. Расширение через абстрагирование< / a > < / li >
< li > < a href = "API.ru.html#back-compat-strong-coupling" > Глава 29. Сильная связность и сопутствующие проблемы< / a > < / li >
< li > < a href = "API.ru.html#back-compat-weak-coupling" > Глава 30. Слабая связность< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#back-compat-universal-interfaces" > Глава 31. Интерфейсы как универсальный паттерн< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#back-compat-serenity-notepad" > Глава 32. Блокнот душевного покоя< / a > < / li >
2023-04-10 00:51:45 +03:00
< / ul >
< / li >
< li >
2023-04-10 23:03:07 +03:00
< h4 > < a href = "API.ru.html#section-5" > [В разработке] Раздел IV. HTTP API и REST< / a > < / h4 >
2023-04-10 00:51:45 +03:00
< ul >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-33" > Глава 33. О концепции HTTP API и терминологии< / a > < / li >
< li > < a href = "API.ru.html#chapter-34" > Глава 34. Мифология REST< / a > < / li >
< li > < a href = "API.ru.html#chapter-35" > Глава 35. Составляющие HTTP запросов и их семантика< / a > < / li >
< li > < a href = "API.ru.html#chapter-36" > Глава 36. Преимущества и недостатки HTTP API< / a > < / li >
< li > < a href = "API.ru.html#chapter-37" > Глава 37. Принципы организации HTTP API< / a > < / li >
< li > < a href = "API.ru.html#chapter-38" > Глава 38. Работа с ошибками в HTTP API< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#chapter-39" > Глава 39. Организация URL ресурсов и операций над ними в HTTP API< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-40" > Глава 40. Заключительные положения и общие рекомендации< / a > < / li >
2023-04-10 00:51:45 +03:00
< / ul >
< / li >
< li >
2023-04-10 23:03:07 +03:00
< h4 > < a href = "API.ru.html#section-6" > [В разработке] Раздел V. SDK и UI< / a > < / h4 >
2023-04-10 00:51:45 +03:00
< ul >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-41" > Глава 41. О содержании раздела< / a > < / li >
< li > < a href = "API.ru.html#chapter-42" > Глава 42. SDK: проблемы и решения< / a > < / li >
< li > < a href = "API.ru.html#chapter-43" > Глава 43. Кодогенерация< / a > < / li >
< li > < a href = "API.ru.html#chapter-44" > Глава 44. UI-компоненты< / a > < / li >
< li > < a href = "API.ru.html#chapter-45" > Глава 45. Декомпозиция UI-компонентов. MV*-подходы< / a > < / li >
< li > < a href = "API.ru.html#chapter-46" > Глава 46. MV*-фреймворки< / a > < / li >
< li > < a href = "API.ru.html#chapter-47" > Глава 47. Backend-Driven UI< / a > < / li >
< li > < a href = "API.ru.html#chapter-48" > Глава 48. Разделяемые ресурсы и асинхронные блокировки< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#chapter-49" > Глава 49. Вычисляемые свойства< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#chapter-50" > Глава 50. В заключение< / a > < / li >
2023-04-10 00:51:45 +03:00
< / ul >
< / li >
< li >
< h4 > < a href = "API.ru.html#section-7" > Раздел VI. API как продукт< / a > < / h4 >
< ul >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-product" > Глава 51. Продукт API< / a > < / li >
< li > < a href = "API.ru.html#api-product-business-models" > Глава 52. Бизнес-модели API< / a > < / li >
< li > < a href = "API.ru.html#api-product-vision" > Глава 53. Формирование продуктового видения< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#api-product-devrel" > Глава 54. Взаимодействие с разработчиками< / a > < / li >
< li > < a href = "API.ru.html#api-product-business-comms" > Глава 55. Взаимодействие с бизнес-аудиторией< / a > < / li >
< li > < a href = "API.ru.html#api-product-range" > Глава 56. Линейка сервисов API< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-product-kpi" > Глава 57. Ключевые показатели эффективности API< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#api-product-antifraud" > Глава 58. Идентификация пользователей и борьба с фродом< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-product-tos-violations" > Глава 59. Технические способы борьбы с несанкционированным доступом к API< / a > < / li >
2023-05-22 20:58:51 +03:00
< li > < a href = "API.ru.html#api-product-customer-support" > Глава 60. Поддержка пользователей API< / a > < / li >
2023-04-25 10:35:00 +03:00
< li > < a href = "API.ru.html#api-product-documentation" > Глава 61. Документация< / a > < / li >
< li > < a href = "API.ru.html#api-product-testing" > Глава 62. Тестовая среда< / a > < / li >
< li > < a href = "API.ru.html#api-product-expectations" > Глава 63. Управление ожиданиями< / a > < / li >
2022-07-07 00:41:03 +03:00
< / ul >
2022-06-23 23:28:55 +03:00
< / li >
2022-07-07 00:41:03 +03:00
< / ul >
< p > Это произведение доступно по < a href = "http://creativecommons.org/licenses/by-nc/4.0/" > лицензии Creative Commons «Attribution-NonCommercial» («Атрибуция — Некоммерческое использование») 4.0 Всемирная< / a > .< / p >
< p > Исходный код доступен на < a href = "https://github.com/twirl/The-API-Book" > github.com/twirl/The-API-Book< / a > < / p >
2022-07-31 15:08:37 +03:00
< h3 > < a name = "about-author" > Об авторе< / a > < / h3 >
< section class = "about-me" >
2022-08-13 16:00:49 +03:00
< aside > < img src = "https://konstantinov.cc/static/me.png" / > < br / > Фото: < a href = "http://linkedin.com/in/zloylos/" > Denis Hananein< / a > < / aside >
2022-07-31 15:08:37 +03:00
< div class = "content" >
< p > Сергей Константинов работает с API уже больше десятилетия. Он начинал свою карьеру разработчиком в подразделении API Яндекс.Карт, и со временем стал руководителем всего сервиса, отвечая и за техническую, и за продуктовую составляющую.< / p >
2023-05-18 23:48:43 +03:00
< p > За это время Сергей получил уникальный опыт построения API мирового уровня с дневной аудиторией в десятки миллионов человек, планирования роадмапов для такого продукта и многочисленных публичных выступлений. Он также проработал полтора года в составе Технической архитектурной группы W3C.< / p >
2022-07-31 15:08:37 +03:00
< p > После девяти лет в Картах Сергей переключился на технические роли в других департаментах и компаниях, занимаясь интеграционными проектами и будучи ответственным за техническую архитектуру целых продуктов компании. Сегодня Сергей живёт в Таллинне, Эстония, и работает ведущим инженером в компании Bolt.< / p > < / div >
< / section >
< p > You might also < a href = "index.html" > read ‘The API’ in English< / a > .< / p >
2022-07-07 00:41:03 +03:00
< / body >
< / html >