Sobes.tech
Junior

Какво е REST API?

sobes.tech AI

Отговор от AI

REST API е архитектурен стил за изграждане на разпределени системи. Основните принципи на REST:

  • Без състояние: Всеки заявка от клиента към сървъра трябва да съдържа цялата необходима информация за обработка. Сървърът не запазва състоянието на клиента между заявките.
  • Клиент-Сървър: Ясно разделение на отговорностите между клиента и сървъра. Клиентът изпраща заявки, сървърът ги обработва.
  • Кешируемост: Сървърът трябва да указва дали отговорите могат да бъдат кеширани от клиента или посредниците.
  • Система на слоеве: Клиентът не е задължително да взаимодейства директно със сървъра; може да го направи чрез междинни слоеве (прокси, балансери на натоварване).
  • Единен интерфейс: Единен и стандартизиран начин за взаимодействие между клиента и сървъра. Този принцип включва:
    • Идентификация на ресурси: Ресурсите (данните) се идентифицират чрез URL.
    • Манипулация на ресурси чрез представяния: Клиентът взаимодейства с ресурсите, получавайки техните представяния (например JSON, XML) и изпращайки нови представяния за промяна.
    • Самодостатъчни съобщения: Всяко съобщение съдържа достатъчно информация, за да бъде разбрано как да бъде обработено.
    • HATEOAS (Hypertext As The Engine Of Application State): Ресурсите трябва да съдържат връзки (хипервръзки) към свързани ресурси и достъпни действия.

REST API обикновено използва стандартни HTTP методи за изпълнение на операции върху ресурсите:

  • GET: Получаване на ресурс или колекция от ресурси.
  • POST: Създаване на нов ресурс.
  • PUT: Пълно обновяване на съществуващ ресурс.
  • PATCH: Частично обновяване на съществуващ ресурс.
  • DELETE: Изтриване на ресурс.

Пример за JSON представяне на ресурс:

{
  "id": 1, // Идентификатор
  "name": "Resource Name", // Име на ресурса
  "description": "Detailed description of the resource." // Описание на ресурса
}

Тестването на REST API включва проверка:

  • Функционалност (коректност на отговорите на заявките).
  • Обработка на грешки.
  • Производителност.
  • Сигурност.
  • Съответствие с документацията.