REST 原则 - 返回一个简单的响应

REST principles - returning a simple response

我正在使用 Django REST 框架。默认情况下,所有请求 return 都是一个包含分页的 JSON 对象(prevnextcountresults)。这在 90% 的用户检索或创建有关某物的信息的情况下很有用。然而,有一些资源不需要 return 任何东西,而是确认一切顺利 - 例如,想象一个资源只是一个 heartbeat 请求("ping" ) 以保持会话活动。

return 一个简单的响应是否可以,例如 {result: true}(没有像其他资源那样的任何分页),或者这最终会违反 REST 原则吗?

是的,当然这样对 ping 请求的响应是可以的。分页是只适用于可以分页的集合的东西。分页不是集合的唯一资源没有意义。

对于 ping 请求,您甚至可以将响应正文留空。

要求:

GET /ping

回复:

200 OK
Content-Length: 0

如果您只想知道 URI 是否完全可用,完全忽略正文,您应该只支持 HEAD 请求而不是 GET

分页应该用范围 header 或超链接来解决。您不需要空响应中的 body,只需要状态 header.