REST API Flashcards

1
Q

что такое стиль REST

A

Representational State Transfer (Передача репрезентативного (самоописываемого) состояния) — это архитектурный стиль, описывающий ограничения для проектирования слабо связанных приложений, использующих протокол HTTP (HTTPS) для передачи данных. API, соответствующий ограничениям стиля REST, называют RESTful или просто REST API.
REST использует для проектирования систем все те ограничения и соглашения, которые свойственны сети Интернет, а значит, они проверены временем.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Принципы REST API

A

Не хранить состояние
Клиент и сервер должны взаимодействовать без хранения состояния (stateless).
Использовать кэширование данных
Кэширование может выполняться как на стороне клиента, так и на стороне API. Кэширование позволит увеличить производительность за счёт использования сохранённых ранее данных.
Проектировать ресурсы (существительные), а не методы или операции (глаголы).
При использовании REST и системному аналитику, и разработчику важно думать о приложении с точки зрения ресурсов, то есть руководствоваться тем, какие ресурсы вовлечены во взаимодействие, и как эти ресурсы определяют операции, которые можно над ними совершать.
Использовать унифицированный интерфейс (uniform interface)
Все ресурсы должны иметь одинаковый, унифицированный интерфейс, который может быть использован для выполнения операций над ресурсом. Унифицированный HTTP-интерфейс определяет CRUD-операции для создания, чтения, обновления и удаления ресурсов в виде HTTP-методов POST, GET, PUT, DELETE. Иными словами, HTTP-запросы должны включать уже известные вам HTTP-методы.
Использовать коды состояния (status code)
HTTP-ответы должны включать также известные вам коды состояний, например, 200 OK, 400 Bad Request, 502 Bad Gateway.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Что такое хранение состояния в REST API

A

Состояние (state) — это информация, которая используется экземпляром клиентского приложения (приложения, расположенного на клиенте) для его работы. Сервер не хранит состояние (stateless server). Всю информацию о состоянии хранит клиент (stateful client). API в таком случае так же не хранит состояния приложений. Пример - незалогиненный пользователь магазина, который решил собрать корзины на разных устройствах

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Что такое кэширование состояния в REST API

A

Каждый ответ сервера обязан содержать пометку, можно ли кэшировать содержимое ответа. Кэширование позволяет увеличить производительность API за счёт использования сохранённых ранее данных. Кэширование может выполняться как на стороне клиента, так и на стороне API.
Например, пользователь на клиенте открыл страницу 27 книги 123. В ответе сервера было указано, что кэширование на стороне клиента разрешено. Если пользователь обновит страницу, то клиент может не отправлять запрос на повторное открытие той же страницы, а открыть ту страницу, которая сохранена в кэше.

Кэширование на стороне клиента может выполняться различными способами, например, временное кэширование в указанный промежуток времени, или HTTP кэширование.

Кэширование на стороне API предполагает хранение ответов сервера в кэше API без необходимости вызова бэкенда. В этом случае API может играть роль клиента для сервера, полагаясь на HTTP кэширование, то есть на протокол. Либо альтернативный вариант реализации — это актуализация данных путем отправления запросов на сервер через заданные промежутки времени.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Что такое ресурсы в REST API

A

Участники взаимодействия (клиент, API, сервер) обмениваются не самими ресурсами (веб-страницы, изображения, видео), а их представлениями.
Процесс преобразования ресурса в представление в соответствии с определённым набором правил называется сериализацией (serialization). Правила сериализации описаны, например, стилями представления данных JSON и XML.
Процесс преобразования представления в ресурс называется десериализацией.
Представление ресурса состоит из:
непосредственно данных;
метаданных, описывающих данные;
гиперссылки (URL).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Сравнение стилей SOAP и REST

A
  1. Сложность реализации
    REST легкий, сервисы SOAP тяжелые.
  2. Структура данных
    Сервисы SOAP имеют жёсткую, предопределённую и строго формализованную структуру.
    Сервисы REST обслуживают узкие запросы и ебольшие структуры данных.
  3. Размер сообщений
    Сообщения SOAP содержат много метаданных и поддерживают только подробные XML-структуры для запросов и ответов.
    Сервисы REST разбивают свои структуры данных на необходимые элементы. Однако REST так же, руководствуясь принципом единообразия интерфейса, может передать огромное количество метаданных, поэтому в случае REST это зависит от конкретной реализации.
  4. Используемые протоколы
    SOAP может быть реализован на базе многих протоколов, включая HTTP, TCP, UDP и SMTP.
    REST ограничен только HTTP.
  5. Сфера применения
    SOAP хорошо подходит для приложений, работающих в корпоративной сети благодаря своей жёсткой структуре. SOAP часто используется для интеграции с корпоративными партнерами.
    REST хорошо подходит для API, предназначенных для широкого использования многими клиентами.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly