Ваша модель даних почала стабілізуватися, і ви можете створити публічний API для своєї веб-програми. Ви розумієте, що важко внести значні зміни у свій API після того, як він випущений, і хочете отримати якомога більше правильного результату. Нажаль не існує загальноприйнятого стандарту, який би працював у всіх випадках. В Інтернеті немає дефіциту думок про дизайн API та у […]
REST та RESTful API
REST означає Representational State Transfer, термін, запропонований Роєм Філдінгом у 2000 році. Це стиль архітектури для проектування слабозв’язаних програм у мережі, який часто використовується під час розробки веб-служб . REST не нав’язує жодних правил щодо того, як це має бути реалізовано на нижчому рівні, він лише встановлює керівні принципи проектування високого рівня та залишає нас думати про нашу власну реалізацію. Давайте почнемо зі […]
HATEOAS – “Hypermedia As The Engine Of Application State” – Гіпермедіа як двигун стану програми
Що таке HATEOAS? Hypermedia as the Engine of Application State, або скорочено HATEOAS, — це різновид REST, яка використовує гіпермедіа для опису майбутніх дій, доступних клієнту. Дозволені дії виводяться в API на основі поточного стану програми та повертаються клієнту як набір посилань. Потім клієнт використовує ці посилання для подальшої взаємодії з API. Чи потрібен мені HATEOAS, щоб […]
Ідемпотентність – або стійкість до постійного навантаження в однакових відповідях сервера
У контексті REST API, коли багато ідентичних запитів має той самий ефект, що й один запит, тоді такий REST API називається ідемпотентним. 1. Ідемпотентні API Коли ми розробляємо REST API, ми повинні усвідомлювати, що споживачі API можуть робити помилки. Споживачі можуть написати код клієнта таким чином, щоб до API могли надходити повторювані запити. Ці повторювані запити можуть бути ненавмисними, […]
Узгодження вмісту в REST
1. Узгодження змісту Як правило, ресурси REST можуть мати кілька презентацій, головним чином через те, що можуть бути різні клієнти, які очікують різних представлень. Запит клієнта на відповідну презентацію називається переговорами щодо контенту . HTTP містить кілька механізмів для «узгодження вмісту» — процесу вибору найкращого представлення для даної відповіді, коли доступно кілька представлень.— RFC 2616 2. Узгодження вмісту, кероване сервером і […]
Відсутність збереження стану (statelessness) в REST API
1. Відсутність збереження стану (statelessness) Відповідно до архітектури REST (REpresentational “State” Transfer) сервер не зберігає жодного стану про сеанс клієнта на стороні сервера. Це обмеження називається statelessness. Кожен запит від клієнта до сервера повинен містити всю необхідну інформацію для розуміння запиту. Сервер не може скористатися жодним збереженим контекстом на сервері. Тому стан сеансу програми повністю зберігається на клієнті. Клієнт самостійно несе відповідальність […]