我有一个处理大量资源,客户的 REST api。客户有时需要客户的缩写/摘要表示。指定请求用于摘要表示的好方法是什么?
要获得客户 123 的完整表示,其:/customers/123
要获得摘要表示是 /customers/123/summary
一个好方法?
有更好的选择吗?
最佳答案
为了使您的解决方案可重用且灵活,我建议实现“过滤器”查询参数。在那里,您可以放置客户端所需的任何字段:
GET /customers/123?fields=id,first_name,last_name,email
这样,如果以后您需要为不同的任务创建不同的摘要,您将无需修改任何内容。
我不推荐
/customers/123/summary
因为它不灵活。对于一种情况可能没问题,但是如果客户端需要为不同的情况访问不同的属性,您将不得不调整资源(很可能通过返回比需要的更多的字段)。如果您想“隐藏”字段名称,也许替代方法可能是这样的:GET /customers/123?view=DESCRIPTION
其中“
DESCRIPTION
”将描述摘要的类型。例如:GET /customers/123?view=addresses_only // eg. returns billing and home address
GET /customers/123?view=short // eg. returns only id, first name, last name
这仍然很灵活,因为您可以轻松创建新 View 。
关于rest - REST api 中请求资源摘要表示的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15977593/