Какво е RESTful API
И така, какво е REST API?
"То API, който използва HTTP заявки за
ВЗЕМЕТЕ, ПОСТАВЕТЕ, ПОСТ и ИЗТРИЙ ".
Мнозина също ще кажат:
„Става въпрос за идентифициране на ресурси, използващи URI“
Други ще викат:
„Забравихте връзки, те трябва да използват хипервръзки!“
В заключение можем да кажем:
„По принцип е просто API, който използва HTTP правилно!"
Някои от тези твърдения са погрешни,
Някои са частично верни,
но няма значение,
Защото те всички пропускат смисъла.
За да можете да разработите RESTful API,
Първо, трябва да разберем REST!
Какво е ПОЧИВКА?
Какво е ПОЧИВКА?
Определено не е HTTP
Ето защо има толкова много противоречия около REST API.
REST е стил на архитектурата.
Ами добре ... но какво е архитектурен стил?
Архитектурен стил

Това е просто архитектура, плюс набор от ограничения, приложени към архитектурата, която създава желаната архитектура.
Прилагайки тези ограничения, ние получаваме желаната архитектура, оптимизирана за общи случаи.
REST означава представяне на състоянието на трансфер
Това е записано от Рой Филдинг в неговата докторска дисертация през 2000 г., където той описва съществуващата и модерна уеб архитектура като абстракция.
Заглавието имаше за цел да накара идея за това как се държи добре проектираното уеб приложение.
Рой описа REST с прост пример:
Разгледайте мрежата от уеб страници като виртуална автомат на състоянието.
Всяка страница представлява състояние:

1. Първо, потребителят получава първото състояние като състояние на индекс.
3. Резултат от прехвърляне на следващото състояние на потребителя.
REST все още не е HTTP
Разбира се, през 2000 г. мрежата вече работеше на HTTP и Рой и колегите му инженери работиха много по това.
REST обаче не дефинира конкретни подробности за внедряване на системата и не дефинира никакъв синтаксис на протокола.
Напълно възможно е да имате RESTful архитектура върху протоколи, които не са HTTP.
Например CoAP (Restricted Application Protocol) е RESTful протокол за вградени устройства (Internet of Things) и е проектиран да използва минимални ресурси както на устройството, така и в мрежата.
Така че защо да използвате REST?
World Wide Web се основава на REST архитектура.
Така че, ако създадете не-RESTful API, който ще се използва в мрежата, тогава ще получите неоптимална система. Не е оптимално по отношение на оптимизирана архитектура.