Частковий
(Partial)залежний
(dependent)асоціативний
(associative)пов'язаний
(linked)/companies/{id} і /company
/company/{id} і /companies
/companies/{id} і /companies
/company/{id} і /company
дані в токені
Власність
дозвіл
ціле число
Єдиний інтерфейс
Клієнт-Сервер
Безстанова
Кешована
HTTP
REST
OPTIONS
CORS
сповіщення інших систем про подію
швидшого виявлення помилок
покращення журналювання помилок
журналювання додаткових даних
додавати нові технології до інфраструктури організації.
ділитися функціями та можливостями з іншими системами.
переносити інфраструктуру в хмару.
задовольняти останні вимоги цифрової трансформації.
bash
curl
ssh
powerShell
OpenAPI (Swagger)
WADL
WSDL
OAuth
SUBMIT
WRITE
POST
CREATE
Мобільні додатки працюють краще.
Це покращує доступність.
Це забезпечує кращу безпеку.
Це зменшує навантаження на сервери.
409 Conflict
400 Bad Request
406 Not Acceptable
405 Method Not Allowed
шар ідентифікації поверх OAuth 2.0
нова назва для SAML 3.0
сучасна заміна API-ключів
конкурент SSO для OAuth 2.0
гнучкі запити/відповіді
стабільніші API
сумісність з більшою кількістю шлюзів
безпечніший за замовчуванням
Безстанова
Клієнт-Сервер
Єдиний інтерфейс
Кешована
Ідентифікує ID користувача.
Ідентифікує клієнтський застосунок або SDK.
Вказує, чи API має очікувати автентифікацію користувача.
Вказує, чи API має приймати трафік мікросервісів.
application/json
application/json_version2
text/html
application/vnd.myapp.v2+json
Токен зашифрований.
Токен закодований.
Токен обмежений для конкретного випадку використання.
Токен можна передавати між системами.
How to easily secure your APIs with API keys and OAuth
безстанової архітектури
ідемпотентності
єдиного інтерфейсу
кешованості
API-проксі
API-шлюз
OpenAPI
OAuth-сервер авторизації
транспортування через SSL
зашифрований вміст
підпис
закодований вміст
token
scope
claim
back channel
ID token
refresh token
access token
auth code token
no-proxy
client-only
restricted
private
Authorization Code Grant
Client Credentials Grant
Implicit Grant
Authentication Grant
Це залежить від API.
admin
write
read-write
_embedded
resources
subresources
_links
відстеження завантажень
заголовки Accept
user agents
опитування користувачів
Шарова система
Безстанова
Клієнт-Сервер
Кешована
стек технологій
обґрунтування схеми іменування
місія
приклад коду
Час відповіді
Час до першого Hello World
TTL
Час безвідмовної роботи
GET /user/{id}
GET /users/{id}
GET /user?id={id}
GET /users?id={id}
описувати відносини між ресурсами або діями
описувати підресурси, пов'язані з поточним
зв'язувати два ресурси
описувати ресурс і його призначення
resources
_embedded
subresources
_links
API-шлюз
API-журналювання
шарова система
API-проксі
загальновідомих знань
URL
відсутності версіонування
заголовка Accept
параметр URL
заголовок Authorization
Base64-кодування
Basic Auth
клієнт
не вказано
сервер авторизації
сервер ресурсів
вхідний трафік
північ-південь трафік
внутрішній трафік
схід-захід трафік
Додати .json до URL.
API не використовують XML.
Використовувати заголовок Content-Type.
Використовувати заголовок Accept.
403
404
401
405
HTTP-дієслова
JSON-навантаження
HTTP-коди відповіді
обмеження швидкості/дроселювання
red team тестування
white box тестування
blue box тестування
black box тестування
PUT
POST
GET
OPTIONS
Expires: 1 minute
Cache-Control: max-age=60
Expires: 1 January 2020
Cache-Expires: max-age=60
гіпермедіа
(hypermedia)відношення посилань
(link relations)парсинг
(parsing)перегляд
(browsing)405
201
204
202
REST Architectural Constraints
A. Термін дії (exp) не минув.
B. Алгоритм є достатнім.
C. Підпис відповідає навантаженню.
D. Токен був закодований у Base64.
E. Видавець (iss) є очікуваним сервером авторизації.
F. Є refresh-токен.
G. Ідентифікатор клієнта (cid) є очікуваним клієнтом.
H. Токен був зашифрований.
схід-захід трафік
(east-west traffic)вхідний трафік
(inbound traffic)північ-південь трафік
(north-south traffic)зовнішній трафік
(external traffic)North-South vs East-West Traffic
OAuth 2.0 for Native and Mobile Apps
YY-M-D hh:mm:ss+TZ
YY-M-D h:mm:ss
YYYY-MM-DDThh:mm:ssZ
YYYY-M-D hh:mm:ss
The 5 laws of API dates and times
Cache-Control Expires Etag Rate limiting your RESTful API
RETRIEVE
FORM
GET
READ
200
405
201
204