REST API参数优先级

时间:2012-01-20 08:44:46

标签: api http rest

我正在努力创建REST API。假设我正在服务的资源名为object,它包含许多属性。

除了请求像这样的整个对象

GET api.example.com/objects

我想通过提供objectidobjectname来允许请求单个对象, 像这样

GET api.example.com/objects?objectid=
GET api.example.com/objects?objectname=

我感到困惑的是,我该如何处理这样的请求?

GET api.example.com/objects?objectid=x&objectname=y

在这种情况下,我应该返回400 Bad Request,还是其中一个参数优先于另一个参数? REST如何定义此行为?

2 个答案:

答案 0 :(得分:3)

REST通常假设资源有一个唯一的URL,因此它将是:

GET api.example.com/objects/objectId

参数通常用于搜索,因此您可以使用以下内容:

GET api.example.com/objects?objectName=x

答案 1 :(得分:1)

更好的方法是使用参数字符串中的通用键来检索特定资源的字段值

GET api.example.com/objects/objectId?field=objectName,anotherField

它补充了xpapad的建议,并且可以为您定义API设计的一致方法添加可扩展的结构。