mirror of
https://github.com/twirl/The-API-Book.git
synced 2025-05-31 22:09:37 +02:00
234 lines
11 KiB
HTML
234 lines
11 KiB
HTML
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<link rel="icon" type="image/jpg" href="assets/favicon.jpg" />
|
|
<title>
|
|
Сергей Константинов. API
|
|
</title>
|
|
<meta
|
|
name="description"
|
|
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики проектирования API. Книга состоит из двух больших разделов. В первом разделе мы поговорим о проектировании API на стадии разработки концепции — как грамотно выстроить архитектуру, от крупноблочного планирования до конечных интерфейсов. Второй раздел посвящён развитию существующих API с сохранением обратной совместимости"
|
|
/>
|
|
<meta property="og:type" content="article" />
|
|
<meta
|
|
property="og:title"
|
|
content="Сергей Константинов. API"
|
|
/>
|
|
<meta
|
|
property="og:description"
|
|
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики проектирования API. Книга состоит из двух больших разделов. В первом разделе мы поговорим о проектировании API на стадии разработки концепции — как грамотно выстроить архитектуру, от крупноблочного планирования до конечных интерфейсов. Второй раздел посвящён развитию существующих API с сохранением обратной совместимости"
|
|
/>
|
|
<meta property="og:image" content="assets/header.png" />
|
|
<meta
|
|
property="og:url"
|
|
content="https://github.com/twirl/The-API-Book"
|
|
/>
|
|
<style>
|
|
@font-face {
|
|
font-family: local-serif;
|
|
src: url(assets/PTSerif-Regular.ttf);
|
|
}
|
|
|
|
@font-face {
|
|
font-family: local-serif;
|
|
src: url(assets/PTSerif-Bold.ttf);
|
|
font-weight: bold;
|
|
}
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: none;
|
|
font-family: local-serif, Arial, Helvetica, sans-serif;
|
|
list-style-type: none;
|
|
}
|
|
|
|
h1 {
|
|
font-size: 1.5em;
|
|
}
|
|
h1.title {
|
|
font-size: 2em;
|
|
}
|
|
h2 {
|
|
font-size: 1.2em;
|
|
}
|
|
|
|
ul > li {
|
|
padding-left: 1em;
|
|
}
|
|
|
|
p {
|
|
margin: 1em 0;
|
|
}
|
|
|
|
body {
|
|
font-size: 14pt;
|
|
margin: 5px;
|
|
}
|
|
|
|
nav {
|
|
text-align: center;
|
|
}
|
|
|
|
nav > img {
|
|
max-height: 300px;
|
|
object-fit: contain;
|
|
}
|
|
|
|
nav a {
|
|
vertical-align: -12%;
|
|
content: ' ';
|
|
width: 1em;
|
|
height: 1em;
|
|
display: inline-block;
|
|
background-position: 0 0;
|
|
background-size: auto 100%;
|
|
background-repeat: no-repeat;
|
|
text-decoration: none;
|
|
}
|
|
|
|
a.github {
|
|
background-image: url(assets/github.jpg);
|
|
width: 1.2em;
|
|
}
|
|
|
|
a.linkedin {
|
|
background-image: url(assets/linkedin.png);
|
|
width: 1.176em;
|
|
}
|
|
|
|
a.twitter {
|
|
background-image: url(assets/twitter.svg);
|
|
width: 1.392em;
|
|
}
|
|
|
|
a.habr {
|
|
background-image: url(assets/habr.png);
|
|
}
|
|
|
|
a.patreon,
|
|
a.medium,
|
|
a.habr {
|
|
width: auto;
|
|
padding-left: 1em;
|
|
vertical-align: baseline;
|
|
background-position: 0 0.2em;
|
|
}
|
|
|
|
a.patreon {
|
|
background-image: url(assets/patreon.png);
|
|
}
|
|
|
|
a.medium {
|
|
background-image: url(assets/medium.png);
|
|
padding-left: 1.3em;
|
|
background-size: 1.42em 1em;
|
|
}
|
|
|
|
a.kindle {
|
|
width: auto;
|
|
vertical-align: unset;
|
|
}
|
|
|
|
body img {
|
|
width: 100%;
|
|
max-width: 1000px;
|
|
}
|
|
|
|
@media (min-width: 1010px) {
|
|
body {
|
|
width: 1000px;
|
|
margin: 5px auto;
|
|
text-align: justify;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 2000px) {
|
|
body {
|
|
width: auto;
|
|
margin: 5px 25%;
|
|
text-align: justify;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<nav>
|
|
<img
|
|
src="assets/header.jpg"
|
|
alt="Сергей Константинов. API"
|
|
/><br />
|
|
<h1>Сергей Константинов<br/><span class="title">API</span></h1>
|
|
<h2>Бесплатная электронная книга</h2>
|
|
<br />Подпишитесь на обновления на <a class="habr" href="https://habr.com/ru/users/forgotten/posts/">Хабре</a>
|
|
|
|
<br />Поддержите эту работу на <a class="patreon" href="https://www.patreon.com/yatwirl">Patreon</a>
|
|
<br />⚙️⚙️⚙️
|
|
</nav>
|
|
<p>«API-first» подход — одна из самых горячих горячих тем в разработке программного обеспечения в наше время. Многие компании начали понимать, что API выступает мультипликатором их возможностей — но также умножает и допущенные ошибки.</p>
|
|
<p>Эта книга посвящена проектированию API: как правильно выстроить архитектуру, начиная с высокоуровневого планирования и заканчивая деталями реализации конкретных интерфейсов, и как развивать API, не нарушая обратную совместимость.</p>
|
|
<p>Вы можете скачать книгу «API» в формате <a href="API.ru.pdf">PDF</a>, <a href="API.ru.epub">EPUB</a>, или <a href="API.ru.html">прочитать её онлайе</a>.
|
|
</p>
|
|
<h3>Содержание</h3>
|
|
<ul><li>
|
|
<h4><a href="API.ru.html#section-1">Введение</a></h4>
|
|
<ul>
|
|
<li><a href="API.ru.html#chapter-1">Глава 1. О структуре этой книги</a></li>
|
|
<li><a href="API.ru.html#chapter-2">Глава 2. Определение API</a></li>
|
|
<li><a href="API.ru.html#chapter-3">Глава 3. Критерии качества API</a></li>
|
|
<li><a href="API.ru.html#chapter-4">Глава 4. Обратная совместимость</a></li>
|
|
<li><a href="API.ru.html#chapter-5">Глава 5. О версионировании</a></li>
|
|
<li><a href="API.ru.html#chapter-6">Глава 6. Условные обозначения и терминология</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<h4><a href="API.ru.html#section-2">Раздел I. Проектирование API</a></h4>
|
|
<ul>
|
|
<li><a href="API.ru.html#chapter-7">Глава 7. Пирамида контекстов API</a></li>
|
|
<li><a href="API.ru.html#chapter-8">Глава 8. Определение области применения</a></li>
|
|
<li><a href="API.ru.html#chapter-9">Глава 9. Разделение уровней абстракции</a></li>
|
|
<li><a href="API.ru.html#chapter-10">Глава 10. Разграничение областей ответственности</a></li>
|
|
<li><a href="API.ru.html#chapter-11">Глава 11. Описание конечных интерфейсов</a></li>
|
|
<li><a href="API.ru.html#chapter-12">Глава 12. Приложение к разделу I. Модельный API</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<h4><a href="API.ru.html#section-3">Раздел II. Обратная совместимость</a></h4>
|
|
<ul>
|
|
<li><a href="API.ru.html#chapter-13">Глава 13. Постановка проблемы обратной совместимости</a></li>
|
|
<li><a href="API.ru.html#chapter-14">Глава 14. О ватерлинии айсберга</a></li>
|
|
<li><a href="API.ru.html#chapter-15">Глава 15. Расширение через абстрагирование</a></li>
|
|
<li><a href="API.ru.html#chapter-16">Глава 16. Сильная связность и сопутствующие проблемы</a></li>
|
|
<li><a href="API.ru.html#chapter-17">Глава 17. Слабая связность</a></li>
|
|
<li><a href="API.ru.html#chapter-18">Глава 18. Интерфейсы как универсальный паттерн</a></li>
|
|
<li><a href="API.ru.html#chapter-19">Глава 19. Блокнот душевного покоя</a></li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<h4>Часть III. API как продукт</h4>
|
|
<ul>
|
|
<li>Глава 20. Продукт API</li>
|
|
<li>Глава 21. Бизнес-модели API</li>
|
|
<li>Глава 22. Формирование продуктового видения</li>
|
|
<li>Глава 23. Взаимодействие с разработчиками</li>
|
|
<li>Глава 24. Взаимодействие с бизнес-аудиторией</li>
|
|
<li>Глава 25. Линейка сервисов API</li>
|
|
<li>Глава 26. Ключевые показатели эффективности API</li>
|
|
<li>Глава 27. Идентификация пользователей и борьба с фродом</li>
|
|
<li>Глава 28. Информационная безопасность</li>
|
|
<li>Глава 29. Поддержка пользователей</li>
|
|
<li>Глава 30. Документация</li>
|
|
<li>Глава 31. Тестовая среда</li>
|
|
<li>Глава 32. Управление ожиданиями</li>
|
|
</ul>
|
|
</li>
|
|
</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>
|
|
<p>Иллюстрации и вдохновение: Maria Konstantinova · <a href="https://www.instagram.com/art.mari.ka/">art.mari.ka</a>.</p>
|
|
<p>You might also <a href="index.html">read ‘The API’ in English</a>.</p>
|
|
</body>
|
|
</html> |