Частковий (Partial)залежний (dependent)асоціативний (associative)пов'язаний (linked)/companies/{id} і /company/company/{id} і /companies/companies/{id} і /companies/company/{id} і /companyдані в токеніВласністьдозвілціле числоЄдиний інтерфейсКлієнт-СерверБезстановаКешованаHTTPRESTOPTIONSCORSсповіщення інших систем про подіюшвидшого виявлення помилокпокращення журналювання помилокжурналювання додаткових данихдодавати нові технології до інфраструктури організації.ділитися функціями та можливостями з іншими системами.переносити інфраструктуру в хмару.задовольняти останні вимоги цифрової трансформації.bashcurlsshpowerShellOpenAPI (Swagger)WADLWSDLOAuthSUBMITWRITEPOSTCREATEМобільні додатки працюють краще.Це покращує доступність.Це забезпечує кращу безпеку.Це зменшує навантаження на сервери.409 Conflict400 Bad Request406 Not Acceptable405 Method Not Allowedшар ідентифікації поверх OAuth 2.0нова назва для SAML 3.0сучасна заміна API-ключівконкурент SSO для OAuth 2.0гнучкі запити/відповідістабільніші APIсумісність з більшою кількістю шлюзівбезпечніший за замовчуваннямБезстановаКлієнт-СерверЄдиний інтерфейсКешованаІдентифікує ID користувача.Ідентифікує клієнтський застосунок або SDK.Вказує, чи API має очікувати автентифікацію користувача.Вказує, чи API має приймати трафік мікросервісів.application/jsonapplication/json_version2text/htmlapplication/vnd.myapp.v2+jsonТокен зашифрований.Токен закодований.Токен обмежений для конкретного випадку використання.Токен можна передавати між системами.How to easily secure your APIs with API keys and OAuth
безстанової архітектуриідемпотентностієдиного інтерфейсукешованостіAPI-проксіAPI-шлюзOpenAPIOAuth-сервер авторизаціїтранспортування через SSLзашифрований вмістпідписзакодований вмістtokenscopeclaimback channelID tokenrefresh tokenaccess tokenauth code tokenno-proxyclient-onlyrestrictedprivateAuthorization Code GrantClient Credentials GrantImplicit GrantAuthentication GrantЦе залежить від API.adminwriteread-write_embeddedresourcessubresources_linksвідстеження завантаженьзаголовки Acceptuser agentsопитування користувачівШарова системаБезстановаКлієнт-СерверКешованастек технологійобґрунтування схеми іменуваннямісіяприклад кодуЧас відповідіЧас до першого Hello WorldTTLЧас безвідмовної роботиGET /user/{id}GET /users/{id}GET /user?id={id}GET /users?id={id}описувати відносини між ресурсами або діямиописувати підресурси, пов'язані з поточнимзв'язувати два ресурсиописувати ресурс і його призначенняresources_embeddedsubresources_linksAPI-шлюзAPI-журналюванняшарова системаAPI-проксізагальновідомих знаньURLвідсутності версіонуваннязаголовка Acceptпараметр URLзаголовок AuthorizationBase64-кодуванняBasic Authклієнтне вказаносервер авторизаціїсервер ресурсіввхідний трафікпівніч-південь трафіквнутрішній трафіксхід-захід трафікДодати .json до URL.API не використовують XML.Використовувати заголовок Content-Type.Використовувати заголовок Accept.403404401405HTTP-дієсловаJSON-навантаженняHTTP-коди відповідіобмеження швидкості/дроселюванняred team тестуванняwhite box тестуванняblue box тестуванняblack box тестуванняPUTPOSTGETOPTIONSExpires: 1 minuteCache-Control: max-age=60Expires: 1 January 2020Cache-Expires: max-age=60гіпермедіа (hypermedia)відношення посилань (link relations)парсинг (parsing)перегляд (browsing)405201204202REST 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+TZYY-M-D h:mm:ssYYYY-MM-DDThh:mm:ssZYYYY-M-D hh:mm:ssThe 5 laws of API dates and times
Cache-Control Expires Etag Rate limiting your RESTful API
RETRIEVEFORMGETREAD200405201204