我正在努力创建REST API。假设我正在服务的资源名为object
,它包含许多属性。
除了请求像这样的整个对象
GET api.example.com/objects
我想通过提供objectid
或objectname
来允许请求单个对象,
像这样
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如何定义此行为?
答案 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设计的一致方法添加可扩展的结构。