Подтвердить что ты не робот

Действительный JSON в ответе

Я работаю над клиентским и серверным приложением и столкнулся с интересной проблемой. Мы создаем спокойный API и общаемся с клиентами с ответами JSON. При выполнении DELETE мы возвращаем 200 OK с пустым ответом. Наши клиенты получают 200 OK, но не смогли разобрать JSON.

Мы полностью понимаем неудавшийся синтаксис (нет ничего, чтобы разобрать), но у нас был больший вопрос. Отправляет ли пустой ответ действительный JSON, или мы должны возвращать {} или что-то в этом роде? Спасибо.

4b9b3361

Ответ 1

Из определение HTTP/1.1 относительно метода DELETE:

Успешный ответ ДОЛЖЕН быть 200 (ОК), если ответ включает объект, описывающий статус, 202 (Принято), если действие еще не выполнено или 204 (без содержания), если действие было принято, но ответ не включает объект.

Итак, если ваш сервер немедленно удаляет элемент, то предлагаемые ответы будут следующими:

  • 200 OK - возвращает какой-то код состояния (например, логическое значение true или строка с сообщением "успех" )
  • 204 Нет содержимого - ничего не возвращайте и попросите вашего клиента следить за этим ответом, а не пытаться разбирать JSON, но все еще зная, что запрос был успешным.

Ответ 2

Просто выполните быстрый тест здесь: http://jsonlint.com/ показывает, что пробел недействителен JSON, а {} - действителен JSON.