Проектирование REST API: спорные вопросы с проектов и собеседований
Конспект статьи. Автор оригинала: Екатерина Ананьева (katherine_a, GetAnalyst)
REST — стиль без жёстких правил (описан Роем Филдингом в 2000 году), поэтому многие решения субъективны. Семь спорных вопросов с рекомендациями.
- POST для получения данных — да, если фильтров много и URL становится нечитаемым, а также для асинхронных задач: POST создаёт задачу и возвращает её ID, GET по ID отдаёт статус и результат.
- Все методы через POST — технически можно, но нарушается семантика и пропадает кеширование.
- Тело в GET — спецификация не запрещает, но многие клиенты и серверы его игнорируют. Не стоит.
- Единственное или множественное число — оба варианта допустимы, гайдлайны Microsoft и Google чаще за множественное. Главное — единообразие.
- Глаголы в URL — не нужны: вместо
POST /products/create—POST /products. - 200 или 201 на POST — при создании ресурса 201 Created.
- Пустой результат — для списка 200 и пустой массив, для конкретного объекта 404.
Решения фиксируют в гайдлайне команды, а при развитии существующего API следуют уже принятой логике.
Источник: Проектирование REST API: спорные вопросы с проектов и собеседований
Автор: Екатерина Ананьева (katherine_a, GetAnalyst)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.
Автор: Екатерина Ананьева (katherine_a, GetAnalyst)
Это конспект, пересказ основных идей. Полный текст, иллюстрации и примеры читайте в оригинальной статье.