RESTAPI参数优先级
我正在创建一个RESTAPI。假设我所服务的资源被称为RESTAPI参数优先级,api,http,rest,Api,Http,Rest,我正在创建一个RESTAPI。假设我所服务的资源被称为object,它包含许多属性 除了请求像这样的整个对象集之外 GET api.example.com/objects 我希望通过提供objectid或objectname来允许请求单个对象, 像这样 获取api.example.com/objects?objectid= 获取api.example.com/objects?objectname= 我困惑的是,我应该如何处理这样的请求 GET api.example.com/objects?o
object
,它包含许多属性
除了请求像这样的整个对象集之外
GET api.example.com/objects
我希望通过提供objectid
或objectname
来允许请求单个对象,
像这样
获取api.example.com/objects?objectid=
获取api.example.com/objects?objectname=
我困惑的是,我应该如何处理这样的请求
GET api.example.com/objects?objectid=x&objectname=y
在这种情况下,我应该返回
400错误请求
,还是其中一个参数优先于另一个?REST是如何定义这种行为的?REST通常假定资源有一个唯一的URL,因此它是:
GET api.example.com/objects/objectId
参数通常用于搜索,因此您可以使用以下内容:
GET api.example.com/objects?objectName=x
REST通常假定资源有一个唯一的URL,因此它是:
GET api.example.com/objects/objectId
参数通常用于搜索,因此您可以使用以下内容:
GET api.example.com/objects?objectName=x
更好的方法是在参数字符串中使用泛型键来检索特定资源的字段值
GET api.example.com/objects/objectId?field=objectName,anotherField
它补充了xpapad的建议,并可以在如何定义API设计的一致性方法中添加可伸缩结构。更好的方法是在参数字符串中使用通用键来检索特定资源的字段值
GET api.example.com/objects/objectId?field=objectName,anotherField
它补充了xpapad的建议,并可以在定义API设计一致性方法时添加可扩展结构。如果有多个搜索参数,它们被认为是AND或or?我不知道REST的建议是什么,但我通常使用AND来表示不同的参数和单个参数的列表参数,所以?type=2,3&parent=10代表(parent=10和(type=2或type=3)在多个搜索参数的情况下,它们是否被视为AND或or?我不知道REST建议是什么,但我通常使用AND来表示不同的参数和单个参数的列表参数,所以?type=2,3&parent=10代表(parent=10和(type=2或type=3)