2015-04-14 14 views
0

Я работаю с картой Django REST. По умолчанию все запросы возвращают объект JSON, содержащий разбивку на страницы (prev, next, count, results). Это полезно в 90% случаев, когда пользователь извлекает или создает информацию о чем-то. Однако есть несколько ресурсов, которые не должны возвращать ничего, а скорее подтверждение того, что все прошло гладко - например, представьте себе ресурс, который является просто запросом heartbeat («ping») для поддержания активного сеанса.Принципы REST - возврат простого ответа

Не могли бы вы вернуть простой ответ, например {result: true} (без какой-либо разбивки на страницы, как и для остальных ресурсов) или это было бы возможным нарушением принципов REST?

ответ

0

Да, конечно, такой ответ на запрос ping в порядке. Пагинация - это то, что подходит только для коллекции, которая может быть выгружена. Пейджинг Уникальный ресурс, который не является коллекцией, не имеет смысла.

Для запроса ping вы даже можете оставить корпус ответа пустым.

Запрос:

GET /ping 

Ответ:

200 OK 
Content-Length: 0 
+1

Может быть, ответ не должен быть понг? –

+0

@WillS Of courese. Но поскольку OP писал: «Есть несколько ресурсов, которые не должны возвращать ничего, а скорее подтверждение того, что все прошло гладко», я пропустил тело ответа «понг» :) –

1

Если все вы хотите знать, если URI полностью исправен, полностью игнорируя тело, вы должны просто поддерживать HEAD запрос вместо GET.

0

Пагинация должна быть решена с помощью заголовков диапазонов или гиперссылок. Тебе не нужно тело в пустых ответах, просто заголовок состояния.

Смежные вопросы