REST 原则 - 返回一个简单的响应
REST principles - returning a simple response
我正在使用 Django REST 框架。默认情况下,所有请求 return 都是一个包含分页的 JSON 对象(prev
、next
、count
、results
)。这在 90% 的用户检索或创建有关某物的信息的情况下很有用。然而,有一些资源不需要 return 任何东西,而是确认一切顺利 - 例如,想象一个资源只是一个 heartbeat
请求("ping" ) 以保持会话活动。
return 一个简单的响应是否可以,例如 {result: true}
(没有像其他资源那样的任何分页),或者这最终会违反 REST 原则吗?
是的,当然这样对 ping 请求的响应是可以的。分页是只适用于可以分页的集合的东西。分页不是集合的唯一资源没有意义。
对于 ping 请求,您甚至可以将响应正文留空。
要求:
GET /ping
回复:
200 OK
Content-Length: 0
如果您只想知道 URI 是否完全可用,完全忽略正文,您应该只支持 HEAD
请求而不是 GET
。
分页应该用范围 header 或超链接来解决。您不需要空响应中的 body,只需要状态 header.
我正在使用 Django REST 框架。默认情况下,所有请求 return 都是一个包含分页的 JSON 对象(prev
、next
、count
、results
)。这在 90% 的用户检索或创建有关某物的信息的情况下很有用。然而,有一些资源不需要 return 任何东西,而是确认一切顺利 - 例如,想象一个资源只是一个 heartbeat
请求("ping" ) 以保持会话活动。
return 一个简单的响应是否可以,例如 {result: true}
(没有像其他资源那样的任何分页),或者这最终会违反 REST 原则吗?
是的,当然这样对 ping 请求的响应是可以的。分页是只适用于可以分页的集合的东西。分页不是集合的唯一资源没有意义。
对于 ping 请求,您甚至可以将响应正文留空。
要求:
GET /ping
回复:
200 OK
Content-Length: 0
如果您只想知道 URI 是否完全可用,完全忽略正文,您应该只支持 HEAD
请求而不是 GET
。
分页应该用范围 header 或超链接来解决。您不需要空响应中的 body,只需要状态 header.