Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI参数优先级_Api_Http_Rest - Fatal编程技术网

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

我正在创建一个RESTAPI。假设我所服务的资源被称为
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)