如何在OPTIONS动词中指定可用的GET参数?

时间:2013-01-30 10:42:26

标签: rest

在REST Web服务中,有可能说出指定资源可能有哪些动词。我可以返回任何标题,指定GET可以传递param,比如说'name',所以客户端知道他可以做: GET / resource?name = foo

1 个答案:

答案 0 :(得分:1)

如果您愿意,可以制作新的标题,但它们不会与协议的设计非常相符。首先,重要的是要理解“/ bar”标识资源,“/ bar?name = foo”标识不同的资源,而不是具有参数的相同资源。我知道这与许多流行的Web框架的设计背道而驰,但它对于理解如何正确使用协议至关重要。

基于此,OPTIONS方法应返回有关已标识资源的信息,这意味着OPTIONS /bar应返回有关/bar资源的通信选项的响应,而不是/bar?name={name}资源集。另请注意,OPTIONS没有为有效负载指定格式;唯一可互操作的交换是通过众所周知的标题,如Allow。

表示资源/bar包含有关资源/bar?name=foo的信息的正确方法是通过链接(或表单,其中一些是构建链接的方法),在有效负载中(如果媒体类型支持它)从GET /bar或响应标头中检索(越来越多地通过Link header)。查看URI Templates以获取HTML表单的替代方法。