Полезные ссылки
- REST API
-
https://smartum.pro/ru/blog-ru/gid-dlya-nachinayuschih-po-rest-api/https://habrahabr.ru/post/265845/
- Пишем REST-сервис на Python с использованием Flask
- Полноценный REST API для перфекционистов за 5 минут
Требование к унифицированным интерфейсам:
-
Идентификация ресурсов по интернет адресу
Все ресурсы идентифицируются в запросах, например, с использованием URI в интернет-системах. Ресурсы концептуально отделены от представлений, которые возвращаются клиентам
-
Манипуляция ресурсами через представление
если клиент хранит представление ресурса, включая метаданные — он обладает достаточной информацией для модификации или удаления ресурса.
-
Самоописываемые» сообщения - идентификация действия по HTTP-методу
-
каждое сообщение содержит достаточно информации, чтобы понять каким образом его обрабатывать. К примеру, обработчик сообщения (parser) необходимый для извлечения данных может быть указан в списке MIME-типов. Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
-
получение данных с сервера (обычно в формате JSON, или XML)
-
добавление новых данных на сервер
-
модификация существующих данных на сервере
-
удаление данных на сервере
Операция получения данных не может приводить к изменению состояния сервера. Для каждого типа операции используется свой метод HTTP-запроса
-
получение - GET
-
добавление - POST
-
модификация - PUT
-
удаление - DELETE.
-
GET-запрос /rest/users - получение информации о всех пользователяхGET-запрос /rest/users/125 - получение информации о пользователе с id=125
-
POST-запрос /rest/users - добавление нового пользователяPUT-запрос /rest/users/125 - изменение информации о пользователе с id=125DELETE-запрос /rest/users/125 - удаление пользователя с id=125
-
-
Обычно создание новой сущности реализует тот же контроллер который выдает список сущностей.
Исправление и удаление - тот же контроллер, что выдает сведения об отдельной сущности.
- Примеры:
-