我有一个REST服务,允许用户传入他们想要从调用中返回的属性列表,例如:
/Item/123/Properties/Name,Id,Description,Type
有数百个可以传入的属性名称,这会导致段之间支持的字符数量(例如:/ IamASegment /)为260而不更改注册表等问题。
所以我的问题是,当我需要支持用户传递大量这样的数据时,如果通过标题传入,最好的方法是什么?
答案 0 :(得分:0)
正确的REST解决方案是在上一页/州创建表单并通过POST
提交该表单,然后生成重定向GET
到实际的参数化资源。在这种情况下,参数可以是某个数字,例如,表示所请求字段的位字段。
这样的事情:
GET /items
{"form": {
"Id": { "type": "number" },
"Name" : { "type": "checkbox" },
"Description" : { "type": "checkbox" },
...
}
POST /items
{"Name": "true", "Description": "true", ... }
重定向至:
GET /items/123?fields=110110111
当然,您必须为表单,请求,响应等定义正确的media-types
。