我一直在创建RESTful应用程序,并且我未决定如何处理不返回资源的所有实体或返回多个资源(GET /resource/all请求)的请求.请允许我一些时间来设置这种情况(我会尝试尽可能地概括这一点,以便它可以适用于除我之外的其他人):
假设我正在创建一个产品API.为简单起见,假设它返回JSON(在发送正确的接受标头之后).可以访问产品/product/[id].产品有评论,可以访问/products/[id]/review/[id].
我的第一个问题在于这种子资源模式.由于您在获取产品时可能并不总是想要评论,因此可以通过其他URI访问它们.根据我的内容,我应该包含请求的URI,该URI将返回产品请求响应中产品的所有审核URI.我应该如何解决这个问题,以便它遵守RESTful标准?它应该是标题,Reviews-URI: /product/123/review/all还是应该在响应正文中包含URL,如下所示:
{ 'name': 'Shamwow',
'price': '$14.99',
'reviews': '/product/123/review/all'
}
Run Code Online (Sandbox Code Playgroud)
我的第二个问题是关于/product/[id]/review/all请求应该如何运作.我听说我应该发送所有评论的URL并让用户获取每个评论,而不是将所有评论打包成一个请求.我应该如何根据RESTful标准指出这一系列的评论URI?我应该使用标头或列出响应正文中的URI,如下所示:
{ 'reviews': [ '/product/123/review/1',
'/product/123/review/2',
'/product/123/review/3'
]
}
Run Code Online (Sandbox Code Playgroud)