Skip to main content
Практика завдань

Що таке REST та принципи REST — REST API

Що таке REST?

REST (Representational State Transfer) — це архітектурний стиль для створення розподілених додатків. REST використовує стандартні HTTP методи та принципи для взаємодії між клієнтом і сервером. У RESTful API запити виконуються за допомогою стандартних HTTP методів, таких як GET, POST, PUT і DELETE для роботи з ресурсами.

Принципи REST

Принципи REST описуються через кілька ключових обмежень, які допомагають створювати гнучкі, масштабовані та легкі у підтримці веб-сервіси. Розглянемо основні принципи REST:

Архітектура Клієнт-Сервер

REST використовує модель клієнт-сервер, де клієнт і сервер є відокремленими та незалежними. Клієнт надсилає запити до сервера, який їх обробляє та надсилає відповіді. Це розділення дозволяє серверу бути незалежним від клієнта, а також спрощує розробку, оновлення та підтримку.

  • Клієнт: Відповідає за користувацький інтерфейс та роботу з даними.
  • Сервер: Обробляє запити від клієнта, управляє даними та надає їх через API.

Безстанність

RESTful API є безстанним, що означає, що кожен запит від клієнта до сервера повинен містити всю інформацію, необхідну для обробки запиту. Сервер не зберігає інформацію про попередні запити, і кожен запит розглядається незалежно.

  • Приклад: Коли надсилається GET запит, сервер не зберігає інформацію про те, що користувач був авторизований у попередньому запиті. Натомість, кожен запит повинен містити токен авторизації або інші дані аутентифікації.

Кешування

Відповіді сервера можуть бути кешованими, якщо це необхідно для покращення продуктивності. Кешування дозволяє зберігати часто запитувані дані в пам'яті або на диску, щоб уникнути повторних запитів до сервера.

  • Приклад: Якщо дані не змінюються часто, їх можна кешувати на клієнті або проксі-сервері для прискорення роботи додатку.

Уніфікований Інтерфейс

REST має уніфікований інтерфейс, який стандартизує взаємодію між клієнтом і сервером. Це спрощує створення та використання API, оскільки клієнт завжди взаємодіє з API однаковим чином, незалежно від внутрішньої реалізації сервера.

Уніфікований інтерфейс включає:

  • Використання стандартних HTTP методів (GET, POST, PUT, DELETE).
  • Ресурси представлені як URI (Uniform Resource Identifier).
  • Стандартизовані формати даних, такі як JSON або XML.

Шарова Система

RESTful API може бути шаровим, що означає, що сервер може бути розділений на кілька шарів, кожен з яких виконує свою задачу. Наприклад, один шар може обробляти запити, інший — аутентифікацію, третій — обробку бази даних тощо. Клієнт може взаємодіяти лише з зовнішнім шаром, не знаючи про інші шари.

  • Приклад: Використання проксі-серверів або API шлюзів для розділення обробки запитів від користувачів і роботи з базою даних.

Код на Запит (додатково)

Цей принцип не завжди використовується в REST, але дозволяє серверу надсилати виконуваний код, такий як JavaScript, клієнту для виконання. Це дозволяє серверу змінювати поведінку клієнта за необхідності.

  • Приклад: Коли сервер надсилає JavaScript код на клієнтську сторону для виконання на сторінці (наприклад, у браузері).

Орієнтація на Ресурси

У REST кожен об'єкт або дані, що передаються між клієнтом і сервером, є ресурсом. Ресурси ідентифікуються за допомогою унікальних URL. Клієнт взаємодіє з цими ресурсами, використовуючи стандартні HTTP методи (GET, POST, PUT, DELETE).

Переваги REST

  1. Простота та гнучкість: REST використовує стандартні HTTP методи та широко використовувані формати даних, такі як JSON і XML, що робить його простим у використанні та гнучким для різних додатків.
  2. Масштабованість: Розділяючи клієнтську та серверну частини, REST API дозволяє легко масштабувати додатки та сервіси.
  3. Кешування: Можливість кешувати відповіді сервера покращує продуктивність і зменшує навантаження на сервер.
  4. Незалежність платформи: RESTful API може використовуватися з будь-якою платформою та мовою програмування, оскільки використовує стандартні веб-технології (HTTP, URI, JSON).

Приклад RESTful API

Уявімо, що у нас є сервіс для управління користувачами. Деякі HTTP запити для цього API можуть виглядати так:

  • GET /users — Отримати список усіх користувачів.
  • GET /users/{id} — Отримати інформацію про користувача за ID.
  • POST /users — Створити нового користувача.
  • PUT /users/{id} — Оновити інформацію про користувача за ID.
  • DELETE /users/{id} — Видалити користувача за ID.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань