Fork me on GitHub

REST API с чем это едят

Полезные ссылки

Требование к унифицированным интерфейсам:

  • Идентификация ресурсов по интернет адресу

    Все ресурсы идентифицируются в запросах, например, с использованием URI в интернет-системах. Ресурсы концептуально отделены от представлений, которые возвращаются клиентам

  • Манипуляция ресурсами через представление

если клиент хранит представление ресурса, включая метаданные — он обладает достаточной информацией для модификации или удаления ресурса.

  • Самоописываемые» сообщения - идентификация действия по HTTP-методу

    • каждое сообщение содержит достаточно информации, чтобы понять каким образом его обрабатывать. К примеру, обработчик сообщения (parser) необходимый для извлечения данных может быть указан в списке MIME-типов. Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):

    • получение данных с сервера (обычно в формате JSON, или XML)

    • добавление новых данных на сервер

    • модификация существующих данных на сервере

    • удаление данных на сервере

      Операция получения данных не может приводить к изменению состояния сервера. Для каждого типа операции используется свой метод HTTP-запроса

      1. получение - GET

      2. добавление - POST

      3. модификация - PUT

      4. удаление - DELETE.

        • GET-запрос /rest/users - получение информации о всех пользователяхGET-запрос /rest/users/125 - получение информации о пользователе с id=125

        • POST-запрос /rest/users - добавление нового пользователяPUT-запрос /rest/users/125 - изменение информации о пользователе с id=125DELETE-запрос /rest/users/125 - удаление пользователя с id=125

    Обычно создание новой сущности реализует тот же контроллер который выдает список сущностей.

    Исправление и удаление - тот же контроллер, что выдает сведения об отдельной сущности.

    • Примеры:

- http://www.appsmail.ru/platform/api?method=photos.get&app_id=423004&session_key=551fd0e4779e35859dfccd03397dc8a0&sig=bba26c74957f72a75ab833bd5f0c1d83&aid=_myphoto

social