REST如何获取相关资源?

时间:2020-09-16 14:54:52

标签: api rest

假设我有一个API,可以通过api/products/<productid>的商品ID来获取商品。

使用给定产品ID的相关产品的REST方法是什么?我认为我可以在与api/products?id=<productid>相同的端点上使用查询,但是不确定这是否理想还是可能造成混淆。

2 个答案:

答案 0 :(得分:0)

制作api网址的标准做法是api/products/<productid>

对于id以外的其他参数(通常用于filteringsearching),查询参数被视为api/products?name=somename

有关详细的资源命名指南,请参见here

答案 1 :(得分:0)

获取相关资源的REST方法是什么?

回答这个问题:您将如何在网络上做到这一点?

您可能有一个产品的网页,然后是该页面到一个描述相关资源的新页面的链接,其中该页面中的每个条目都将包含指向特定资源的产品页面的链接。

我们需要为客户端定义(或使其易于发现)的方法是如何找到链接。

在网络上,我们通常使用页面的HTML表示。 HTML的特殊之处在于它对链接具有标准化的理解。对于人类消费者,我们在链接周围加上上下文(通常是A元素的内容);对于机器,我们在定义规则时应该更加精确。

对于对链接没有标准化理解的表示,我们需要做其他事情。最常见的答案是使用Web Linking,也就是说,我们将URI之间的关系描述放入响应的标头中。

REST并不关心您为资源标识符使用的拼写约定,只要它们符合RFC 3896中定义的生产规则即可。因此,您可以选择自己喜欢的任何拼写约定。

例如,在URI的查询部分中通常使用包含键值对的拼写约定,因为HTML GET表单可用于描述具有该形状的链接,从而简化了某些用例。

由于REST不在乎您的拼写约定,因此您可以使用额外的自由来解决其他问题(对于阅读日志的人来说,哪些拼写是容易的;对于记录API的人来说,哪些拼写是容易的?等等。 ..)

相关问题