Повторение – мать учения
HTTP методы:
С помощью HTTP-методов вы сообщаете API, как вы хотите работать с ресурсами:
- GET = чтение данных
- POST = создание новых записей/ресурсов
- PUT = обновление записей (целиком)
- PATCH = обновление записей (частично)
- DELETE = удаление записей
- OPTIONS = получение списка опций для ресурса
- HEAD = получение заголовков ресурса (ресурсов)
Коды ответов HTTP:
Все вызовы будут возвращать код состояния HTTP. Коды ответов дают вам подсказку, был ли ваш вызов успешным или нет.
Статус
Значение
Что делать?
200, 201
Success – Успех. Запрос был успешно выполнен
Хлопаем в ладоши и идём по пиву
400
Bad request – Некорректный запрос. Сервер обнаружил в запросе клиента синтаксическую ошибку.
Проверяем параметры и тело запроса, используя спецификацию. Исправляем, повторяем попытку.
401, 403
Unauthorized, Forbidden – Не авторизован, Запрещено: недостаточно привилегий для доступа к ресурсу.
Проверяем спецификацию на предмет правильной авторизации.
404
Not Found – Не найден. Попытка вызова ресурса, который не существует.
Проверяем путь и параметры запроса на корректность и пробуем снова.
5xx
Server Error – Ошибка сервера. Случилось страшное!
Ищем разработчика сервиса и выясняем, что пошло не так.
Коды ответов HTTP можно разделить на следующие группы:
- 1xx: Информационные
- 2xx: Успешный вызов
- 3xx: Перенаправление
- 4xx: Ошибка клиента
- 5xx: Ошибка сервера
Дополнительная литература: Википедия
JSON
Обычно API REST предполагают, что вы умеете читать JSON (Javascript Object Notation). Впрочем, и в самом деле, это вполне осуществимо:
Краткое освежение, как читать это:
- "ключ" : "значение" – данные представлены парами ключ-значение. Ключ – это «имя» данных, а значение – их содержимое.
- { ... } – все, что находится внутри фигурных скобок, называется Объектом. Пары ключ-значение внутри объекта логически принадлежат друг другу.
- [ .. ] – все, что заключено в квадратные скобки, называется массивом. Массив похож на список. Массив используется для хранения нескольких объектов одного типа (например, списка клиентов)
Дополнительная литература: Википедия
Параметры
Параметры используются для передачи информации в REST API. Передача данных необходима либо для того, чтобы сообщить API, какого клиента вы хотите вызвать, либо для фильтрации результатов, возвращаемых API.
Тип параметра
Что делает
Пример
Body parameter
- Передача данных в вызываемый API
- Используется при POST и PUT вызовах
JSON Body
{
amount: 12.4,
ccy: "EUR",
type: "urgent"
}
Path parameter
- Указывает на то, к какому ресурсу мы обращаемся
- Является продолжением URL
/customer/123/account/4
Query parameter
- Обычно используется для фильтрации результата
- Записывается как пара ключ=значение
- Используется амперсанд «&» для конкатенации нескольких параметров
/customer?level=detail
Header parameter
- Используется для технических целей (например, для авторизации)
{"Authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyR …}
Параметры могут быть указаны в нескольких местах:
- Параметр пути: предоставляется как часть URL-адреса (/customer/{id}) — id — это параметр пути.
- Параметр запроса: добавляется к URL-адресу (/customers?fields=firstName) — fields=firstName является параметром запроса.
- Параметр тела запроса: предоставляется в полезной нагрузке во время вызова API — в наших примерах это всегда структура JSON.
- Параметр заголовка: технические метаданные, используемые внутренним программным обеспечением для лучшего понимания типа запроса. В нашем курсе мы не используем параметры заголовка.