什么';返回资源集合元数据的RESTful方式是什么?
假设我有一个用于访问用户通知的RESTAPI。我有一个用于获取所有通知的端点:什么';返回资源集合元数据的RESTful方式是什么?,rest,api,Rest,Api,假设我有一个用于访问用户通知的RESTAPI。我有一个用于获取所有通知的端点: GET https://server:443/api/notifications 返回以下响应: [ { "status": "unread", "_id": "5db8228d710ab4b1e33f19b2", "title": "Some title", "time": "2019-10-29T11:29:17.402Z", "details": "Some det
GET https://server:443/api/notifications
返回以下响应:
[
{
"status": "unread",
"_id": "5db8228d710ab4b1e33f19b2",
"title": "Some title",
"time": "2019-10-29T11:29:17.402Z",
"details": "Some details...",
"user": "user1"
},
{
"status": "unread",
"_id": "5db8228d710ab4b1e33f19b3",
"title": "Some title",
"time": "2019-10-29T11:29:17.411Z",
"details": "Some other details",
"user": "user2"
},
]
现在,我还希望能够检索单个请求中每个用户的通知量,其响应类似于:
[
{
"user": "user1",
"count": 1
},
{
"user": "user2",
"count": 1
},
]
就REST约定而言,最好的方法是什么
就REST约定而言,最好的方法是什么
REST真的不能回答这个问题。REST告诉你你有资源,但它实际上并没有提供任何关于资源“边界”应该在哪里的意见
再想一想“网页”。您可以将摘要添加到描述通知的网页中,这样就可以了。或者,您可以决定在一个网页上描述通知,在另一个网页上描述摘要,这样就可以了
REST告诉您的是缓存很重要;因此,如果您认为摘要数据的缓存控件应该不同于通知数据,那么您需要考虑将该数据分离到不同的资源中。如果您认为摘要数据和通知数据需要同步,那么它们很可能属于同一资源的一部分
当然,REST中没有任何内容表明不能有多个返回“相同”数据的资源
如果您希望摘要是通知资源的一部分,并且希望该信息能够独立识别,那么您可以使用一个片段来描述摘要“子资源”;也许https://server:443/api/notifications#summary
就REST约定而言,最好的方法是什么
REST真的不能回答这个问题。REST告诉你你有资源,但它实际上并没有提供任何关于资源“边界”应该在哪里的意见
再想一想“网页”。您可以将摘要添加到描述通知的网页中,这样就可以了。或者,您可以决定在一个网页上描述通知,在另一个网页上描述摘要,这样就可以了
REST告诉您的是缓存很重要;因此,如果您认为摘要数据的缓存控件应该不同于通知数据,那么您需要考虑将该数据分离到不同的资源中。如果您认为摘要数据和通知数据需要同步,那么它们很可能属于同一资源的一部分
当然,REST中没有任何内容表明不能有多个返回“相同”数据的资源
如果您希望摘要是通知资源的一部分,并且希望该信息能够独立识别,那么您可以使用一个片段来描述摘要“子资源”;也许https://server:443/api/notifications#summary