【发布时间】:2017-02-10 09:50:44
【问题描述】:
我需要定义一个 REST API,它应该获取对象的唯一标识符并返回内容。内容是从数据库中检索出来的,是 JSON 类型的。 所以,我有一个这样的 REST URL -
GET /data/{typename}/{objectid}
这将返回整个对象内容。
但是,对象的内容可能很大,因此调用者可能只想指定一些或少数几个属性作为响应发送。 我的自然想法是在 GET API 中添加一个 BODY,用户可以在其中指定要检索的对象的属性名称列表。 但是在做一些进一步的研究时,似乎不建议使用带有 BODY 的 GET API。 我能想到的另一个选项是在查询字符串中传递属性名称 -
GET /data/{typename}/{objectid}?property=prop1&property=prop2...
但列表很容易变大。
关于我的 API 应该是什么样子的任何建议?我必须使用 POST 吗?
【问题讨论】:
-
在您的情况下,排除属性会使 URL 更短吗?例如
?excludes=thisProp,thatProp,anotherProp? -
这里关心的不是查询字符串的长度。问题在于了解如何传递会影响 GET API 响应的其他参数。
标签: rest asp.net-web-api2