Вопрос по api, http, rest, http-status-codes – Код статуса HTTP для ограниченной коллекции?

6

У меня есть спокойный сервис, где одна из коллекций ограничена (по причинам UX). В этом случае он имеет шапку из 25 предметов. Если это превышено, ресурсы должны быть удалены, прежде чем могут быть добавлены другие. В качестве примера, если клиент отправляет:

POST http://somesite.com/api/v2/stuff
{"cool":"stuff"}

и есть < 25 вещей в вещи:

200 OK

если> 25 вещей в вещи:

???

DELETE http://somesite.com/api/v2/stuff/:id

POST http://somesite.com/api/v2/stuff
{"cool":"stuff"}

200 OK

Какой код лучше для этого? Прямой 400? 409 КОНФЛИКТ? 429? Никто не кажется совершенно правым ..

409 Конфликт кажется мне правильным, потому что (а) этоs проблема состояния ресурса и (б) это 'Разрешается пользователем. Alohci

Ваш Ответ

1   ответ
8

httpbis раздел 7.5.8: "

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Этот код разрешен только в ситуациях, когда ожидается, что пользователь сможет разрешить конфликт и повторно отправить запрос. Полезная нагрузка ДОЛЖНА включать достаточно информации, чтобы пользователь мог распознать источник конфликта ».

В вашем случае этот ресурс определяетсяhttp://somesite.com/api/v2/stuffиPOST запрос не может быть выполнен из-за конфликта с его текущим состоянием (то есть, он уже исчерпан). В своем ответе предоставьте пользователю достаточно информации (желательно ссылки), чтобы удалить одного из существующих участников, увеличить лимит или предпринять какие-либо другие действия. Затем они могут повторно отправить исходный запрос.

Да, описание подходит, и я подумал, что это может быть лучше. Конфликт только что прозвучал слишком .. сырой = | Scott

Похожие вопросы