rest - REST api 中请求资源摘要表示的最佳方式?

标签 rest

我有一个处理大量资源,客户的 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/

相关文章:

node.js - NodeJS 应用程序构建成功(Heroku),但启动时 Heroku 中出现应用程序错误

rest - Flask 客户端 session 是无状态的吗?

java - 在 Tomcat 中将 RESTful 服务与 JAX-RS/CXF 结合使用

java - Spring REST/MVC & Security 异常处理 & 过滤链需求

rest - 使用url confluence REST API获取内容

java - 发布文件休息模板

python - Django 的 Querydict 异常行为 : bunches POST dictionary into a single key

php - 如何在 php 中使用 curl 将访问 key 作为 HTTP header 传递

java - JAX-RS,Map<String,String> 到 JSON 没有开销?

python - 在单个 POST 数组中使用 Django Rest Framework 上传多个图像?