将大型参数数据传递给REST调用的最佳实践

时间:2016-08-16 08:09:30

标签: rest http-headers

我有一个REST服务,允许用户传入他们想要从调用中返回的属性列表,例如:

/Item/123/Properties/Name,Id,Description,Type

有数百个可以传入的属性名称,这会导致段之间支持的字符数量(例如:/ IamASegment /)为260而不更改注册表等问题。

所以我的问题是,当我需要支持用户传递大量这样的数据时,如果通过标题传入,最好的方法是什么?

1 个答案:

答案 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