You've already forked The-API-Book
mirror of
https://github.com/twirl/The-API-Book.git
synced 2025-08-10 21:51:42 +02:00
The book completely rebuilt with book-builder v1
This commit is contained in:
BIN
docs/API.en.epub
BIN
docs/API.en.epub
Binary file not shown.
2020
docs/API.en.html
2020
docs/API.en.html
File diff suppressed because one or more lines are too long
BIN
docs/API.en.pdf
BIN
docs/API.en.pdf
Binary file not shown.
2018
docs/API.ru.html
2018
docs/API.ru.html
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -80,7 +80,7 @@ a.share-linkedin {
|
||||
|
||||
a.twitter,
|
||||
a.share-twitter {
|
||||
background-image: url(twitter.svg);
|
||||
background-image: url(x.png);
|
||||
width: 1.392em;
|
||||
}
|
||||
|
||||
|
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 24.2.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 248 204" style="enable-background:new 0 0 248 204;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#1D9BF0;}
|
||||
</style>
|
||||
<g id="Logo_1_">
|
||||
<path id="white_background" class="st0" d="M221.95,51.29c0.15,2.17,0.15,4.34,0.15,6.53c0,66.73-50.8,143.69-143.69,143.69v-0.04
|
||||
C50.97,201.51,24.1,193.65,1,178.83c3.99,0.48,8,0.72,12.02,0.73c22.74,0.02,44.83-7.61,62.72-21.66
|
||||
c-21.61-0.41-40.56-14.5-47.18-35.07c7.57,1.46,15.37,1.16,22.8-0.87C27.8,117.2,10.85,96.5,10.85,72.46c0-0.22,0-0.43,0-0.64
|
||||
c7.02,3.91,14.88,6.08,22.92,6.32C11.58,63.31,4.74,33.79,18.14,10.71c25.64,31.55,63.47,50.73,104.08,52.76
|
||||
c-4.07-17.54,1.49-35.92,14.61-48.25c20.34-19.12,52.33-18.14,71.45,2.19c11.31-2.23,22.15-6.38,32.07-12.26
|
||||
c-3.77,11.69-11.66,21.62-22.2,27.93c10.01-1.18,19.79-3.86,29-7.95C240.37,35.29,231.83,44.14,221.95,51.29z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB |
BIN
docs/assets/x.png
Normal file
BIN
docs/assets/x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 100 KiB |
254
docs/index.html
254
docs/index.html
@@ -1,51 +1,50 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" type="image/png" href="assets/favicon.png" />
|
||||
<title>
|
||||
Sergey Konstantinov. The API
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well. This book is written to share expertise and describe best practices in designing and developing APIs. It comprises six sections dedicated to the following topics: the API design, API patterns, maintaining backward compatibility, HTTP APIs & the REST architectural principles, SDKs and UI libraries, API product management."
|
||||
/>
|
||||
<meta property="og:type" content="article" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Sergey Konstantinov. The API"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well. This book is written to share expertise and describe best practices in designing and developing APIs. It comprises six sections dedicated to the following topics: the API design, API patterns, maintaining backward compatibility, HTTP APIs & the REST architectural principles, SDKs and UI libraries, API product management."
|
||||
/>
|
||||
<meta property="og:image" content="assets/header.png" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://github.com/twirl/The-API-Book"
|
||||
/>
|
||||
<link rel="stylesheet" href="assets/fonts.css"/>
|
||||
<link rel="stylesheet" href="assets/landing.css"/>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" type="image/png" href="assets/favicon.png" />
|
||||
<title>
|
||||
Sergey Konstantinov. The API
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well. This book is written to share expertise and describe best practices in designing and developing APIs. It comprises six sections dedicated to the following topics: the API design, API patterns, maintaining backward compatibility, HTTP APIs & the REST architectural principles, SDKs and UI libraries, API product management."
|
||||
/>
|
||||
<meta property="og:type" content="article" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Sergey Konstantinov. The API"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well. This book is written to share expertise and describe best practices in designing and developing APIs. It comprises six sections dedicated to the following topics: the API design, API patterns, maintaining backward compatibility, HTTP APIs & the REST architectural principles, SDKs and UI libraries, API product management."
|
||||
/>
|
||||
<meta property="og:image" content="assets/header.png" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://github.com/twirl/The-API-Book"
|
||||
/>
|
||||
<link rel="stylesheet" href="assets/fonts.css"/>
|
||||
<link rel="stylesheet" href="assets/landing.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<img
|
||||
class="header"
|
||||
src="assets/header.jpg"
|
||||
alt="Sergey Konstantinov. The API"
|
||||
/><br />
|
||||
<header>
|
||||
<h1>Sergey Konstantinov<br/><span class="title">The API</span></h1>
|
||||
<h2>Free e-book</h2>
|
||||
</header>
|
||||
<br />Subscribe for updates on <a class="github" href="https://github.com/twirl/The-API-Book"></a>
|
||||
<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>
|
||||
<br />Support this work: buy it on <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/">Amazon Kindle</a> · <a class="apple" href="http://books.apple.com/us/book/id6467567700">Apple Books</a>
|
||||
<br />Share: <a class="share share-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F" target="_blank"></a> · <a class="share share-twitter" href="https://twitter.com/intent/tweet?text=The%20API%20by%20Sergey%20Konstantinov%20%E2%80%94%20a%20book%20about%20designing%20APIs%2C%20extending%20them%20and%20finding%20a%20proper%20place%20in%20the%20market&url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F&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%2F" target="_blank"></a> · <a class="share share-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F&title=The%20API%20by%20Sergey%20Konstantinov%20%E2%80%94%20a%20book%20about%20designing%20APIs%2C%20extending%20them%20and%20finding%20a%20proper%20place%20in%20the%20market" target="_blank"></a><br/>⚙️⚙️⚙️
|
||||
</nav>
|
||||
<p>API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well.</p>
|
||||
<nav>
|
||||
<img
|
||||
class="header"
|
||||
src="assets/header.jpg"
|
||||
alt="Sergey Konstantinov. The API"
|
||||
/><br />
|
||||
<header>
|
||||
<h1>Sergey Konstantinov<br/><span class="title">The API</span></h1>
|
||||
<h2>Free e-book</h2>
|
||||
</header>
|
||||
<br />Subscribe for updates on <a class="github" href="https://github.com/twirl/The-API-Book"></a>
|
||||
<br/>Follow me on <a class="linkedin" href="https://www.linkedin.com/in/twirl/"></a> · <a class="twitter" href="https://x.com/blogovodoved"></a> · <a class="substack" href="https://twirl.substack.com/">Substack</a>
|
||||
<br />Support this work: buy it on <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/">Amazon Kindle</a> · <a class="apple" href="http://books.apple.com/us/book/id6467567700">Apple Books</a>
|
||||
<br />Share: <a class="share share-facebook" href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F" target="_blank"></a> · <a class="share share-twitter" href="https://x.com/intent/tweet?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F" 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%2F" target="_blank"></a> · <a class="share share-reddit" href="https://www.reddit.com/submit?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2F&title=The%20API%20by%20Sergey%20Konstantinov%20%E2%80%94%20a%20book%20about%20designing%20APIs%2C%20extending%20them%20and%20finding%20a%20proper%20place%20in%20the%20market" target="_blank"></a><br/>⚙️⚙️⚙️
|
||||
</nav>
|
||||
<p>API-first development is one of the hottest technical topics nowadays since many companies have started to realize that APIs serves as a multiplier to their opportunities — but it amplifies the design mistakes as well.</p>
|
||||
<p>This book is written to share expertise and describe best practices in designing and developing APIs. It comprises six sections dedicated to the following topics:</p>
|
||||
<ul><li>— The API design</li>
|
||||
<li>— API patterns</li>
|
||||
@@ -54,122 +53,121 @@
|
||||
<li>— SDKs and UI libraries</li>
|
||||
<li>— API product management.</ul>
|
||||
<p>Illustration & inspiration: <a href="https://www.instagram.com/art.mari.ka/">art.mari.ka</a>.</p>
|
||||
<p>You might download ‘The API’ in <a href="API.en.pdf">PDF</a> / <a href="API.en.epub">EPUB</a> or <a href="API.en.html">read it online</a>.
|
||||
</p>
|
||||
<h3>Table of Contents</h3>
|
||||
<ul class="toc"><li>
|
||||
<h4><a href="API.en.html#section-1">Introduction</a></h4>
|
||||
<p>You might download ‘The API’ in <a href="API.en.pdf">PDF</a> / <a href="API.en.epub">EPUB</a> or <a href="API.en.html">read it online</a>.
|
||||
</p>
|
||||
<h3>Table of Contents</h3>
|
||||
<ul class="toc"><li>
|
||||
<h4><a href="API.en.html#introduction">Introduction</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#intro-structure">Chapter 1. On the Structure of This Book</a></li>
|
||||
<li><a href="API.en.html#intro-api-definition">Chapter 2. The API Definition</a></li>
|
||||
<li><a href="API.en.html#intro-api-quality">Chapter 3. API Quality Criteria</a></li>
|
||||
<li><a href="API.en.html#intro-api-choosing-solutions">Chapter 4. Choosing Solutions for API Development</a></li>
|
||||
<li><a href="API.en.html#intro-api-first-approach">Chapter 5. The API-First Approach</a></li>
|
||||
<li><a href="API.en.html#intro-back-compat">Chapter 6. On Backward Compatibility</a></li>
|
||||
<li><a href="API.en.html#intro-versioning">Chapter 7. On Versioning</a></li>
|
||||
<li><a href="API.en.html#intro-terms-notation">Chapter 8. Terms and Notation Keys</a></li>
|
||||
<li><a href="API.en.html#intro-structure">Chapter 1. On the Structure of This Book</a></li>
|
||||
<li><a href="API.en.html#intro-api-definition">Chapter 2. The API Definition</a></li>
|
||||
<li><a href="API.en.html#intro-api-quality">Chapter 3. API Quality Criteria</a></li>
|
||||
<li><a href="API.en.html#intro-api-choosing-solutions">Chapter 4. Choosing Solutions for API Development</a></li>
|
||||
<li><a href="API.en.html#intro-api-first-approach">Chapter 5. The API-First Approach</a></li>
|
||||
<li><a href="API.en.html#intro-back-compat">Chapter 6. On Backward Compatibility</a></li>
|
||||
<li><a href="API.en.html#intro-versioning">Chapter 7. On Versioning</a></li>
|
||||
<li><a href="API.en.html#intro-terms-notation">Chapter 8. Terms and Notation Keys</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-2">Section I. The API Design</a></h4>
|
||||
<h4><a href="API.en.html#section-i-the-api-design">Section I. The API Design</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#api-design-context-pyramid">Chapter 9. The API Contexts Pyramid</a></li>
|
||||
<li><a href="API.en.html#api-design-defining-field">Chapter 10. Defining an Application Field</a></li>
|
||||
<li><a href="API.en.html#api-design-separating-abstractions">Chapter 11. Separating Abstraction Levels</a></li>
|
||||
<li><a href="API.en.html#api-design-isolating-responsibility">Chapter 12. Isolating Responsibility Areas</a></li>
|
||||
<li><a href="API.en.html#api-design-describing-interfaces">Chapter 13. Describing Final Interfaces</a></li>
|
||||
<li><a href="API.en.html#api-design-annex">Chapter 14. Annex to Section I. Generic API Example</a></li>
|
||||
<li><a href="API.en.html#api-design-context-pyramid">Chapter 9. The API Contexts Pyramid</a></li>
|
||||
<li><a href="API.en.html#api-design-defining-field">Chapter 10. Defining an Application Field</a></li>
|
||||
<li><a href="API.en.html#api-design-separating-abstractions">Chapter 11. Separating Abstraction Levels</a></li>
|
||||
<li><a href="API.en.html#api-design-isolating-responsibility">Chapter 12. Isolating Responsibility Areas</a></li>
|
||||
<li><a href="API.en.html#api-design-describing-interfaces">Chapter 13. Describing Final Interfaces</a></li>
|
||||
<li><a href="API.en.html#api-design-annex">Chapter 14. Annex to Section I. Generic API Example</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-3">Section II. The API Patterns</a></h4>
|
||||
<h4><a href="API.en.html#section-ii-the-api-patterns">Section II. The API Patterns</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#api-patterns-context">Chapter 15. On Design Patterns in the API Context</a></li>
|
||||
<li><a href="API.en.html#api-patterns-aa">Chapter 16. Authenticating Partners and Authorizing API Calls</a></li>
|
||||
<li><a href="API.en.html#api-patterns-sync-strategies">Chapter 17. Synchronization Strategies</a></li>
|
||||
<li><a href="API.en.html#api-patterns-weak-consistency">Chapter 18. Eventual Consistency</a></li>
|
||||
<li><a href="API.en.html#api-patterns-async">Chapter 19. Asynchronicity and Time Management</a></li>
|
||||
<li><a href="API.en.html#api-patterns-lists">Chapter 20. Lists and Accessing Them</a></li>
|
||||
<li><a href="API.en.html#api-patterns-push-vs-poll">Chapter 21. Bidirectional Data Flows. Push and Poll Models</a></li>
|
||||
<li><a href="API.en.html#api-patterns-async-event-processing">Chapter 22. Multiplexing Notifications. Asynchronous Event Processing</a></li>
|
||||
<li><a href="API.en.html#api-patterns-atomicity">Chapter 23. Atomicity of Bulk Changes</a></li>
|
||||
<li><a href="API.en.html#api-patterns-partial-updates">Chapter 24. Partial Updates</a></li>
|
||||
<li><a href="API.en.html#api-patterns-degrading">Chapter 25. Degradation and Predictability</a></li>
|
||||
<li><a href="API.en.html#api-patterns-context">Chapter 15. On Design Patterns in the API Context</a></li>
|
||||
<li><a href="API.en.html#api-patterns-aa">Chapter 16. Authenticating Partners and Authorizing API Calls</a></li>
|
||||
<li><a href="API.en.html#api-patterns-sync-strategies">Chapter 17. Synchronization Strategies</a></li>
|
||||
<li><a href="API.en.html#api-patterns-weak-consistency">Chapter 18. Eventual Consistency</a></li>
|
||||
<li><a href="API.en.html#api-patterns-async">Chapter 19. Asynchronicity and Time Management</a></li>
|
||||
<li><a href="API.en.html#api-patterns-lists">Chapter 20. Lists and Accessing Them</a></li>
|
||||
<li><a href="API.en.html#api-patterns-push-vs-poll">Chapter 21. Bidirectional Data Flows. Push and Poll Models</a></li>
|
||||
<li><a href="API.en.html#api-patterns-async-event-processing">Chapter 22. Multiplexing Notifications. Asynchronous Event Processing</a></li>
|
||||
<li><a href="API.en.html#api-patterns-atomicity">Chapter 23. Atomicity of Bulk Changes</a></li>
|
||||
<li><a href="API.en.html#api-patterns-partial-updates">Chapter 24. Partial Updates</a></li>
|
||||
<li><a href="API.en.html#api-patterns-degrading">Chapter 25. Degradation and Predictability</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-4">Section III. The Backward Compatibility</a></h4>
|
||||
<h4><a href="API.en.html#section-iii-the-backward-compatibility">Section III. The Backward Compatibility</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#back-compat-statement">Chapter 26. The Backward Compatibility Problem Statement</a></li>
|
||||
<li><a href="API.en.html#back-compat-iceberg-waterline">Chapter 27. On the Waterline of the Iceberg</a></li>
|
||||
<li><a href="API.en.html#back-compat-abstracting-extending">Chapter 28. Extending through Abstracting</a></li>
|
||||
<li><a href="API.en.html#back-compat-strong-coupling">Chapter 29. Strong Coupling and Related Problems</a></li>
|
||||
<li><a href="API.en.html#back-compat-weak-coupling">Chapter 30. Weak Coupling</a></li>
|
||||
<li><a href="API.en.html#back-compat-universal-interfaces">Chapter 31. Interfaces as a Universal Pattern</a></li>
|
||||
<li><a href="API.en.html#back-compat-serenity-notepad">Chapter 32. The Serenity Notepad</a></li>
|
||||
<li><a href="API.en.html#back-compat-statement">Chapter 26. The Backward Compatibility Problem Statement</a></li>
|
||||
<li><a href="API.en.html#back-compat-iceberg-waterline">Chapter 27. On the Waterline of the Iceberg</a></li>
|
||||
<li><a href="API.en.html#back-compat-abstracting-extending">Chapter 28. Extending through Abstracting</a></li>
|
||||
<li><a href="API.en.html#back-compat-strong-coupling">Chapter 29. Strong Coupling and Related Problems</a></li>
|
||||
<li><a href="API.en.html#back-compat-weak-coupling">Chapter 30. Weak Coupling</a></li>
|
||||
<li><a href="API.en.html#back-compat-universal-interfaces">Chapter 31. Interfaces as a Universal Pattern</a></li>
|
||||
<li><a href="API.en.html#back-compat-serenity-notepad">Chapter 32. The Serenity Notepad</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-5">Section IV. HTTP APIs & the REST Architectural Principles</a></h4>
|
||||
<h4><a href="API.en.html#section-iv-http-apis-the-rest-architectural-principles">Section IV. HTTP APIs & the REST Architectural Principles</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#http-api-concepts">Chapter 33. On the HTTP API Concept. Paradigms of Developing Client-Server Communication</a></li>
|
||||
<li><a href="API.en.html#http-api-pros-and-cons">Chapter 34. Advantages and Disadvantages of HTTP APIs Compared to Alternative Technologies</a></li>
|
||||
<li><a href="API.en.html#http-api-rest-myth">Chapter 35. The REST Myth</a></li>
|
||||
<li><a href="API.en.html#http-api-requests-semantics">Chapter 36. Components of an HTTP Request and Their Semantics</a></li>
|
||||
<li><a href="API.en.html#http-api-rest-organizing">Chapter 37. Organizing HTTP APIs Based on the REST Principles</a></li>
|
||||
<li><a href="API.en.html#http-api-urls-crud">Chapter 38. Designing a Nomenclature of URLs. The CRUD Operations</a></li>
|
||||
<li><a href="API.en.html#http-api-errors">Chapter 39. Working with HTTP API Errors</a></li>
|
||||
<li><a href="API.en.html#http-api-final-recommendations">Chapter 40. Final Provisions and General Recommendations</a></li>
|
||||
<li><a href="API.en.html#http-api-concepts">Chapter 33. On the HTTP API Concept. Paradigms of Developing Client-Server Communication</a></li>
|
||||
<li><a href="API.en.html#http-api-pros-and-cons">Chapter 34. Advantages and Disadvantages of HTTP APIs Compared to Alternative Technologies</a></li>
|
||||
<li><a href="API.en.html#http-api-rest-myth">Chapter 35. The REST Myth</a></li>
|
||||
<li><a href="API.en.html#http-api-requests-semantics">Chapter 36. Components of an HTTP Request and Their Semantics</a></li>
|
||||
<li><a href="API.en.html#http-api-rest-organizing">Chapter 37. Organizing HTTP APIs Based on the REST Principles</a></li>
|
||||
<li><a href="API.en.html#http-api-urls-crud">Chapter 38. Designing a Nomenclature of URLs. The CRUD Operations</a></li>
|
||||
<li><a href="API.en.html#http-api-errors">Chapter 39. Working with HTTP API Errors</a></li>
|
||||
<li><a href="API.en.html#http-api-final-recommendations">Chapter 40. Final Provisions and General Recommendations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-6">Section V. SDKs & UI Libraries</a></h4>
|
||||
<h4><a href="API.en.html#section-v-sdks-ui-libraries">Section V. SDKs & UI Libraries</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#sdk-toc-technology-overview">Chapter 41. On Terminology. An Overview of Technologies for UI Development</a></li>
|
||||
<li><a href="API.en.html#sdk-problems-solutions">Chapter 42. SDKs: Problems and Solutions</a></li>
|
||||
<li><a href="API.en.html#sdk-ui-components">Chapter 43. Problems of Introducing UI Components</a></li>
|
||||
<li><a href="API.en.html#sdk-decomposing">Chapter 44. Decomposing UI Components</a></li>
|
||||
<li><a href="API.en.html#sdk-mv-frameworks">Chapter 45. The MV* Frameworks</a></li>
|
||||
<li><a href="API.en.html#sdk-backend-driven">Chapter 46. The Backend-Driven UI</a></li>
|
||||
<li><a href="API.en.html#sdk-shared-resources">Chapter 47. Shared Resources and Asynchronous Locks</a></li>
|
||||
<li><a href="API.en.html#sdk-computed-properties">Chapter 48. Computed Properties</a></li>
|
||||
<li><a href="API.en.html#sdk-conclusion">Chapter 49. Conclusion</a></li>
|
||||
<li><a href="API.en.html#sdk-toc-technology-overview">Chapter 41. On Terminology. An Overview of Technologies for UI Development</a></li>
|
||||
<li><a href="API.en.html#sdk-problems-solutions">Chapter 42. SDKs: Problems and Solutions</a></li>
|
||||
<li><a href="API.en.html#sdk-ui-components">Chapter 43. Problems of Introducing UI Components</a></li>
|
||||
<li><a href="API.en.html#sdk-decomposing">Chapter 44. Decomposing UI Components</a></li>
|
||||
<li><a href="API.en.html#sdk-mv-frameworks">Chapter 45. The MV* Frameworks</a></li>
|
||||
<li><a href="API.en.html#sdk-backend-driven">Chapter 46. The Backend-Driven UI</a></li>
|
||||
<li><a href="API.en.html#sdk-shared-resources">Chapter 47. Shared Resources and Asynchronous Locks</a></li>
|
||||
<li><a href="API.en.html#sdk-computed-properties">Chapter 48. Computed Properties</a></li>
|
||||
<li><a href="API.en.html#sdk-conclusion">Chapter 49. Conclusion</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.en.html#section-7">Section VI. The API Product</a></h4>
|
||||
<h4><a href="API.en.html#section-vi-the-api-product">Section VI. The API Product</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.en.html#api-product">Chapter 50. The API as a Product</a></li>
|
||||
<li><a href="API.en.html#api-product-business-models">Chapter 51. API Business Models</a></li>
|
||||
<li><a href="API.en.html#api-product-vision">Chapter 52. Developing a Product Vision</a></li>
|
||||
<li><a href="API.en.html#api-product-devrel">Chapter 53. Communicating with Developers</a></li>
|
||||
<li><a href="API.en.html#api-product-business-comms">Chapter 54. Communicating with Business Owners</a></li>
|
||||
<li><a href="API.en.html#api-product-lineup">Chapter 55. An API Services Lineup</a></li>
|
||||
<li><a href="API.en.html#api-product-kpi">Chapter 56. API Key Performance Indicators</a></li>
|
||||
<li><a href="API.en.html#api-product-antifraud">Chapter 57. Identifying Users and Preventing Fraud</a></li>
|
||||
<li><a href="API.en.html#api-product-tos-violations">Chapter 58. The Technical Means of Preventing ToS Violations</a></li>
|
||||
<li><a href="API.en.html#api-product-customer-support">Chapter 59. Supporting Customers</a></li>
|
||||
<li><a href="API.en.html#api-product-documentation">Chapter 60. Documentation</a></li>
|
||||
<li><a href="API.en.html#api-product-testing">Chapter 61. Testing Environments</a></li>
|
||||
<li><a href="API.en.html#api-product-expectations">Chapter 62. Managing Expectations</a></li>
|
||||
<li><a href="API.en.html#api-product">Chapter 50. The API as a Product</a></li>
|
||||
<li><a href="API.en.html#api-product-business-models">Chapter 51. API Business Models</a></li>
|
||||
<li><a href="API.en.html#api-product-vision">Chapter 52. Developing a Product Vision</a></li>
|
||||
<li><a href="API.en.html#api-product-devrel">Chapter 53. Communicating with Developers</a></li>
|
||||
<li><a href="API.en.html#api-product-business-comms">Chapter 54. Communicating with Business Owners</a></li>
|
||||
<li><a href="API.en.html#api-product-lineup">Chapter 55. An API Services Lineup</a></li>
|
||||
<li><a href="API.en.html#api-product-kpi">Chapter 56. API Key Performance Indicators</a></li>
|
||||
<li><a href="API.en.html#api-product-antifraud">Chapter 57. Identifying Users and Preventing Fraud</a></li>
|
||||
<li><a href="API.en.html#api-product-tos-violations">Chapter 58. The Technical Means of Preventing ToS Violations</a></li>
|
||||
<li><a href="API.en.html#api-product-customer-support">Chapter 59. Supporting Customers</a></li>
|
||||
<li><a href="API.en.html#api-product-documentation">Chapter 60. Documentation</a></li>
|
||||
<li><a href="API.en.html#api-product-testing">Chapter 61. Testing Environments</a></li>
|
||||
<li><a href="API.en.html#api-product-expectations">Chapter 62. Managing Expectations</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4>Live Examples</h3>
|
||||
<ul class="section"><li><a href="examples/01. Decomposing UI Components">Decomposing UI Components</a></li>
|
||||
<li><h4>Live Examples</h3>
|
||||
<ul class="section"><li><a href="examples/01. Decomposing UI Components/index.html">Decomposing UI Components</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>This book is distributed under the <a href="https://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International licence</a>.</p>
|
||||
<p>Source code available at <a href="https://github.com/twirl/The-API-Book">github.com/twirl/The-API-Book</a></p>
|
||||
<h3><a name="about-author">About the Author</a></h3>
|
||||
<section class="about-me">
|
||||
<aside><img src="https://konstantinov.cc/static/me.png"/><br/>Photo by <a href="https://linkedin.com/in/zloylos/">Denis Hananein</a></aside>
|
||||
<div class="content">
|
||||
<p>Sergey Konstantinov has been working with APIs for over a decade. He began his career as a software engineer in the Maps API division at Yandex and eventually became the head of the service. In this role, he was responsible for both technical architecture and product management.</p>
|
||||
<p>This book is distributed under the <a href="https://creativecommons.org/licenses/by-nc/4.0/">Creative Commons Attribution-NonCommercial 4.0 International licence</a>.</p>
|
||||
<p>Source code available at <a href="https://github.com/twirl/The-API-Book">github.com/twirl/The-API-Book</a></p>
|
||||
<h3><a name="about-author">About the Author</a></h3>
|
||||
<section class="about-me">
|
||||
<aside><img src="https://konstantinov.cc/static/me.png"/><br/>Photo by <a href="https://linkedin.com/in/zloylos/">Denis Hananein</a></aside>
|
||||
<div class="content">
|
||||
<p>Sergey Konstantinov has been working with APIs for over a decade. He began his career as a software engineer in the Maps API division at Yandex and eventually became the head of the service. In this role, he was responsible for both technical architecture and product management.</p>
|
||||
<p>During this tenure, Sergey gained unique experience in building world-class APIs with a daily audience of tens of millions, planning roadmaps for such a service, and delivering numerous public speeches. Additionaly, he served as a member of the W3C Technical Architecture Group for a year and a half.</p>
|
||||
<p>After being nine years in Maps, Sergey transitioned to technical lead roles in other departments and companies. In these positions, he led integration efforts and was responsible for the technical architecture of entire business units. Currently, Sergey resides in Tallinn, Estonia, and works as a staff software engineer at Bolt.</p></div>
|
||||
</section>
|
||||
<p>Книгу «API» можно <a href="index.ru.html">читать по-русски</a>.</p>
|
||||
</section>
|
||||
<p>Книгу «API» можно <a href="index.ru.html">читать по-русски</a>.</p>
|
||||
</body>
|
||||
</html>
|
@@ -1,51 +1,50 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" type="image/png" href="assets/favicon.png" />
|
||||
<title>
|
||||
Сергей Константинов. API
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и архитектурным принципам REST, SDK и UI-библиотекам, продуктовому управлению API."
|
||||
/>
|
||||
<meta property="og:type" content="article" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Сергей Константинов. API"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и архитектурным принципам REST, SDK и UI-библиотекам, продуктовому управлению API."
|
||||
/>
|
||||
<meta property="og:image" content="assets/header.png" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://github.com/twirl/The-API-Book"
|
||||
/>
|
||||
<link rel="stylesheet" href="assets/fonts.css"/>
|
||||
<link rel="stylesheet" href="assets/landing.css"/>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<link rel="icon" type="image/png" href="assets/favicon.png" />
|
||||
<title>
|
||||
Сергей Константинов. API
|
||||
</title>
|
||||
<meta
|
||||
name="description"
|
||||
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и архитектурным принципам REST, SDK и UI-библиотекам, продуктовому управлению API."
|
||||
/>
|
||||
<meta property="og:type" content="article" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Сергей Константинов. API"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Разработка API — особый навык: API является как мультипликатором ваших возможностей, так и мультипликатором ваших ошибок. Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых проектированию API, паттернам дизайна API, поддержанию обратной совместимости, HTTP API и архитектурным принципам REST, SDK и UI-библиотекам, продуктовому управлению API."
|
||||
/>
|
||||
<meta property="og:image" content="assets/header.png" />
|
||||
<meta
|
||||
property="og:url"
|
||||
content="https://github.com/twirl/The-API-Book"
|
||||
/>
|
||||
<link rel="stylesheet" href="assets/fonts.css"/>
|
||||
<link rel="stylesheet" href="assets/landing.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<nav>
|
||||
<img
|
||||
class="header"
|
||||
src="assets/header.jpg"
|
||||
alt="Сергей Константинов. API"
|
||||
/><br />
|
||||
<header>
|
||||
<h1>Сергей Константинов<br/><span class="title">API</span></h1>
|
||||
|
||||
</header>
|
||||
<br />Подпишитесь на обновления на <a class="habr" href="https://habr.com/ru/users/forgotten/">Хабре</a>
|
||||
<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>
|
||||
<br />Поддержите эту работу: купите книгу на <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/">Amazon Kindle</a> · <a class="apple" href="http://books.apple.com/us/book/id6467567700">Apple Books</a>
|
||||
<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="https://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/>⚙️⚙️⚙️
|
||||
</nav>
|
||||
<p>«API-first» подход — одна из самых горячих горячих тем в разработке программного обеспечения в наше время. Многие компании начали понимать, что API выступает мультипликатором их возможностей — но также умножает и допущенные ошибки.</p>
|
||||
<nav>
|
||||
<img
|
||||
class="header"
|
||||
src="assets/header.jpg"
|
||||
alt="Сергей Константинов. API"
|
||||
/><br />
|
||||
<header>
|
||||
<h1>Сергей Константинов<br/><span class="title">API</span></h1>
|
||||
|
||||
</header>
|
||||
<br />Подпишитесь на обновления на <a class="habr" href="https://habr.com/ru/users/forgotten/">Хабре</a>
|
||||
<br/>Follow me on <a class="linkedin" href="https://www.linkedin.com/in/twirl/"></a> · <a class="twitter" href="https://x.com/blogovodoved"></a> · <a class="substack" href="https://twirl.substack.com/">Substack</a>
|
||||
<br />Поддержите эту работу: купите книгу на <a class="kindle" href="https://www.amazon.com/gp/product/B09RHH44S5/">Amazon Kindle</a> · <a class="apple" href="http://books.apple.com/us/book/id6467567700">Apple Books</a>
|
||||
<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://x.com/intent/tweet?url=https%3A%2F%2Ftwirl.github.io%2FThe-API-Book%2Findex.ru.html" 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="https://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/>⚙️⚙️⚙️
|
||||
</nav>
|
||||
<p>«API-first» подход — одна из самых горячих горячих тем в разработке программного обеспечения в наше время. Многие компании начали понимать, что API выступает мультипликатором их возможностей — но также умножает и допущенные ошибки.</p>
|
||||
<p>Эта книга написана для того, чтобы поделиться опытом и изложить лучшие практики разработки API. Книга состоит из шести разделов, посвящённых:</p>
|
||||
<ul><li>— проектированию API,</li>
|
||||
<li>— паттернам дизайна API,</li>
|
||||
@@ -54,121 +53,120 @@
|
||||
<li>— SDK и UI-библиотекам,</li>
|
||||
<li>— продуктовому управлению API.</li></ul>
|
||||
<p>Иллюстрации и вдохновение: Maria Konstantinova · <a href="https://www.instagram.com/art.mari.ka/">art.mari.ka</a>.</p>
|
||||
<p>Вы можете прочитать онлайн-версию «The API».</p>
|
||||
<h3>Содержание</h3>
|
||||
<ul class="toc"><li>
|
||||
<h4><a href="API.ru.html#section-1">Введение</a></h4>
|
||||
<p>Вы можете прочитать онлайн-версию «The API».</p>
|
||||
<h3>Содержание</h3>
|
||||
<ul class="toc"><li>
|
||||
<h4><a href="API.ru.html#-">Введение</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.ru.html#intro-structure">Глава 1. О структуре этой книги</a></li>
|
||||
<li><a href="API.ru.html#intro-api-definition">Глава 2. Определение API</a></li>
|
||||
<li><a href="API.ru.html#intro-api-quality">Глава 3. Критерии качества API</a></li>
|
||||
<li><a href="API.ru.html#intro-api-choosing-solutions">Глава 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>
|
||||
<li><a href="API.ru.html#intro-structure">Глава 1. О структуре этой книги</a></li>
|
||||
<li><a href="API.ru.html#intro-api-definition">Глава 2. Определение API</a></li>
|
||||
<li><a href="API.ru.html#intro-api-quality">Глава 3. Критерии качества API</a></li>
|
||||
<li><a href="API.ru.html#intro-api-choosing-solutions">Глава 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>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-2">Раздел I. Проектирование API</a></h4>
|
||||
<h4><a href="API.ru.html#-i-api">Раздел I. Проектирование API</a></h4>
|
||||
<ul class="section">
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-3">Раздел II. Паттерны дизайна API</a></h4>
|
||||
<h4><a href="API.ru.html#-ii-api">Раздел II. Паттерны дизайна API</a></h4>
|
||||
<ul class="section">
|
||||
<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>
|
||||
<li><a href="API.ru.html#api-patterns-weak-consistency">Глава 18. Слабая консистентность</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-async">Глава 19. Асинхронность и управление временем</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-lists">Глава 20. Списки и организация доступа к ним</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-push-vs-poll">Глава 21. Двунаправленные потоки данных. Push и poll-модели</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-async-event-processing">Глава 22. Мультиплексирование сообщений. Асинхронная обработка событий</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-atomicity">Глава 23. Атомарность массовых изменений</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-partial-updates">Глава 24. Частичные обновления</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-degrading">Глава 25. Деградация и предсказуемость</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-context">Глава 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>
|
||||
<li><a href="API.ru.html#api-patterns-weak-consistency">Глава 18. Слабая консистентность</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-async">Глава 19. Асинхронность и управление временем</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-lists">Глава 20. Списки и организация доступа к ним</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-push-vs-poll">Глава 21. Двунаправленные потоки данных. Push и poll-модели</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-async-event-processing">Глава 22. Мультиплексирование сообщений. Асинхронная обработка событий</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-atomicity">Глава 23. Атомарность массовых изменений</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-partial-updates">Глава 24. Частичные обновления</a></li>
|
||||
<li><a href="API.ru.html#api-patterns-degrading">Глава 25. Деградация и предсказуемость</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-4">Раздел III. Обратная совместимость</a></h4>
|
||||
<h4><a href="API.ru.html#-iii-">Раздел III. Обратная совместимость</a></h4>
|
||||
<ul class="section">
|
||||
<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>
|
||||
<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>
|
||||
<li><a href="API.ru.html#back-compat-universal-interfaces">Глава 31. Интерфейсы как универсальный паттерн</a></li>
|
||||
<li><a href="API.ru.html#back-compat-serenity-notepad">Глава 32. Блокнот душевного покоя</a></li>
|
||||
<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>
|
||||
<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>
|
||||
<li><a href="API.ru.html#back-compat-universal-interfaces">Глава 31. Интерфейсы как универсальный паттерн</a></li>
|
||||
<li><a href="API.ru.html#back-compat-serenity-notepad">Глава 32. Блокнот душевного покоя</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-5">Раздел IV. HTTP API и архитектурные принципы REST</a></h4>
|
||||
<h4><a href="API.ru.html#-iv-http-api-rest">Раздел IV. HTTP API и архитектурные принципы REST</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.ru.html#http-api-concepts">Глава 33. О концепции HTTP API. Парадигмы разработки клиент-серверного взаимодействия</a></li>
|
||||
<li><a href="API.ru.html#http-api-pros-and-cons">Глава 34. Преимущества и недостатки HTTP API в сравнении с альтернативными технологиями</a></li>
|
||||
<li><a href="API.ru.html#http-api-rest-myth">Глава 35. Мифология REST</a></li>
|
||||
<li><a href="API.ru.html#http-api-requests-semantics">Глава 36. Составляющие HTTP запросов и их семантика</a></li>
|
||||
<li><a href="API.ru.html#http-api-rest-organizing">Глава 37. Организация HTTP API согласно принципам REST</a></li>
|
||||
<li><a href="API.ru.html#http-api-urls-crud">Глава 38. Разработка номенклатуры URL ресурсов. CRUD-операции</a></li>
|
||||
<li><a href="API.ru.html#http-api-errors">Глава 39. Работа с ошибками в HTTP API</a></li>
|
||||
<li><a href="API.ru.html#http-api-final-recommendations">Глава 40. Заключительные положения и общие рекомендации</a></li>
|
||||
<li><a href="API.ru.html#http-api-concepts">Глава 33. О концепции HTTP API. Парадигмы разработки клиент-серверного взаимодействия</a></li>
|
||||
<li><a href="API.ru.html#http-api-pros-and-cons">Глава 34. Преимущества и недостатки HTTP API в сравнении с альтернативными технологиями</a></li>
|
||||
<li><a href="API.ru.html#http-api-rest-myth">Глава 35. Мифология REST</a></li>
|
||||
<li><a href="API.ru.html#http-api-requests-semantics">Глава 36. Составляющие HTTP запросов и их семантика</a></li>
|
||||
<li><a href="API.ru.html#http-api-rest-organizing">Глава 37. Организация HTTP API согласно принципам REST</a></li>
|
||||
<li><a href="API.ru.html#http-api-urls-crud">Глава 38. Разработка номенклатуры URL ресурсов. CRUD-операции</a></li>
|
||||
<li><a href="API.ru.html#http-api-errors">Глава 39. Работа с ошибками в HTTP API</a></li>
|
||||
<li><a href="API.ru.html#http-api-final-recommendations">Глава 40. Заключительные положения и общие рекомендации</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-6">Раздел V. SDK и UI</a></h4>
|
||||
<h4><a href="API.ru.html#-v-sdk-ui-">Раздел V. SDK и UI-библиотеки</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.ru.html#sdk-toc-technology-overview">Глава 41. Терминология. Обзор технологий разработки SDK</a></li>
|
||||
<li><a href="API.ru.html#sdk-problems-solutions">Глава 42. SDK: проблемы и решения</a></li>
|
||||
<li><a href="API.ru.html#sdk-ui-components">Глава 43. Проблемы встраивания UI-компонентов</a></li>
|
||||
<li><a href="API.ru.html#sdk-decomposing">Глава 44. Декомпозиция UI-компонентов</a></li>
|
||||
<li><a href="API.ru.html#sdk-mv-frameworks">Глава 45. MV*-фреймворки</a></li>
|
||||
<li><a href="API.ru.html#sdk-backend-driven">Глава 46. Backend-Driven UI</a></li>
|
||||
<li><a href="API.ru.html#sdk-shared-resources">Глава 47. Разделяемые ресурсы и асинхронные блокировки</a></li>
|
||||
<li><a href="API.ru.html#sdk-computed-properties">Глава 48. Вычисляемые свойства</a></li>
|
||||
<li><a href="API.ru.html#sdk-conclusion">Глава 49. Заключение</a></li>
|
||||
<li><a href="API.ru.html#sdk-toc-technology-overview">Глава 41. Терминология. Обзор технологий разработки SDK</a></li>
|
||||
<li><a href="API.ru.html#sdk-problems-solutions">Глава 42. SDK: проблемы и решения</a></li>
|
||||
<li><a href="API.ru.html#sdk-ui-components">Глава 43. Проблемы встраивания UI-компонентов</a></li>
|
||||
<li><a href="API.ru.html#sdk-decomposing">Глава 44. Декомпозиция UI-компонентов</a></li>
|
||||
<li><a href="API.ru.html#sdk-mv-frameworks">Глава 45. MV*-фреймворки</a></li>
|
||||
<li><a href="API.ru.html#sdk-backend-driven">Глава 46. Backend-Driven UI</a></li>
|
||||
<li><a href="API.ru.html#sdk-shared-resources">Глава 47. Разделяемые ресурсы и асинхронные блокировки</a></li>
|
||||
<li><a href="API.ru.html#sdk-computed-properties">Глава 48. Вычисляемые свойства</a></li>
|
||||
<li><a href="API.ru.html#sdk-conclusion">Глава 49. Заключение</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4><a href="API.ru.html#section-7">Раздел VI. API как продукт</a></h4>
|
||||
<h4><a href="API.ru.html#-vi-api-">Раздел VI. API как продукт</a></h4>
|
||||
<ul class="section">
|
||||
<li><a href="API.ru.html#api-product">Глава 50. Продукт API</a></li>
|
||||
<li><a href="API.ru.html#api-product-business-models">Глава 51. Бизнес-модели API</a></li>
|
||||
<li><a href="API.ru.html#api-product-vision">Глава 52. Формирование продуктового видения</a></li>
|
||||
<li><a href="API.ru.html#api-product-devrel">Глава 53. Взаимодействие с разработчиками</a></li>
|
||||
<li><a href="API.ru.html#api-product-business-comms">Глава 54. Взаимодействие с бизнес-аудиторией</a></li>
|
||||
<li><a href="API.ru.html#api-product-lineup">Глава 55. Линейка сервисов API</a></li>
|
||||
<li><a href="API.ru.html#api-product-kpi">Глава 56. Ключевые показатели эффективности API</a></li>
|
||||
<li><a href="API.ru.html#api-product-antifraud">Глава 57. Идентификация пользователей и борьба с фродом</a></li>
|
||||
<li><a href="API.ru.html#api-product-tos-violations">Глава 58. Технические способы борьбы с несанкционированным доступом к API</a></li>
|
||||
<li><a href="API.ru.html#api-product-customer-support">Глава 59. Поддержка пользователей API</a></li>
|
||||
<li><a href="API.ru.html#api-product-documentation">Глава 60. Документация</a></li>
|
||||
<li><a href="API.ru.html#api-product-testing">Глава 61. Тестовая среда</a></li>
|
||||
<li><a href="API.ru.html#api-product-expectations">Глава 62. Управление ожиданиями</a></li>
|
||||
<li><a href="API.ru.html#api-product">Глава 50. Продукт API</a></li>
|
||||
<li><a href="API.ru.html#api-product-business-models">Глава 51. Бизнес-модели API</a></li>
|
||||
<li><a href="API.ru.html#api-product-vision">Глава 52. Формирование продуктового видения</a></li>
|
||||
<li><a href="API.ru.html#api-product-devrel">Глава 53. Взаимодействие с разработчиками</a></li>
|
||||
<li><a href="API.ru.html#api-product-business-comms">Глава 54. Взаимодействие с бизнес-аудиторией</a></li>
|
||||
<li><a href="API.ru.html#api-product-lineup">Глава 55. Линейка сервисов API</a></li>
|
||||
<li><a href="API.ru.html#api-product-kpi">Глава 56. Ключевые показатели эффективности API</a></li>
|
||||
<li><a href="API.ru.html#api-product-antifraud">Глава 57. Идентификация пользователей и борьба с фродом</a></li>
|
||||
<li><a href="API.ru.html#api-product-tos-violations">Глава 58. Технические способы борьбы с несанкционированным доступом к API</a></li>
|
||||
<li><a href="API.ru.html#api-product-customer-support">Глава 59. Поддержка пользователей API</a></li>
|
||||
<li><a href="API.ru.html#api-product-documentation">Глава 60. Документация</a></li>
|
||||
<li><a href="API.ru.html#api-product-testing">Глава 61. Тестовая среда</a></li>
|
||||
<li><a href="API.ru.html#api-product-expectations">Глава 62. Управление ожиданиями</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
<h4>Интерактивные примеры</h3>
|
||||
<ul class="section"><li><a href="examples/01. Decomposing UI Components">Decomposing UI Components</a></li>
|
||||
<li><h4>Интерактивные примеры</h3>
|
||||
<ul class="section"><li><a href="examples/01. Decomposing UI Components/index.html">Decomposing UI Components</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>Это произведение доступно по <a href="https://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>
|
||||
<h3><a name="about-author">Об авторе</a></h3>
|
||||
<section class="about-me">
|
||||
<aside><img src="https://konstantinov.cc/static/me.png"/><br/>Фото: <a href="https://linkedin.com/in/zloylos/">Denis Hananein</a></aside>
|
||||
<div class="content">
|
||||
<p>Сергей Константинов работает с API уже больше десятилетия. Он начинал свою карьеру разработчиком в подразделении API Яндекс.Карт, и со временем стал руководителем всего сервиса, отвечая и за техническую, и за продуктовую составляющую.</p>
|
||||
<p>Это произведение доступно по <a href="https://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>
|
||||
<h3><a name="about-author">Об авторе</a></h3>
|
||||
<section class="about-me">
|
||||
<aside><img src="https://konstantinov.cc/static/me.png"/><br/>Фото: <a href="https://linkedin.com/in/zloylos/">Denis Hananein</a></aside>
|
||||
<div class="content">
|
||||
<p>Сергей Константинов работает с API уже больше десятилетия. Он начинал свою карьеру разработчиком в подразделении API Яндекс.Карт, и со временем стал руководителем всего сервиса, отвечая и за техническую, и за продуктовую составляющую.</p>
|
||||
<p>За это время Сергей получил уникальный опыт построения API мирового уровня с дневной аудиторией в десятки миллионов человек, планирования роадмапов для такого продукта и многочисленных публичных выступлений. Он также проработал полтора года в составе Технической архитектурной группы W3C.</p>
|
||||
<p>После девяти лет в Картах Сергей переключился на технические роли в других департаментах и компаниях, занимаясь интеграционными проектами и будучи ответственным за техническую архитектуру целых продуктов компании. Сегодня Сергей живёт в Таллинне, Эстония, и работает ведущим инженером в компании Bolt.</p></div>
|
||||
</section>
|
||||
<p>You might also <a href="index.html">read ‘The API’ in English</a>.</p>
|
||||
</section>
|
||||
<p>You might also <a href="index.html">read ‘The API’ in English</a>.</p>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user