设计RESTAPI以在单个查询字符串中接受多个复合标识符
我需要设计一个API端点,它接受GET请求的复合标识符列表 假设标识符是这两个属性的组合:设计RESTAPI以在单个查询字符串中接受多个复合标识符,rest,api,get,Rest,Api,Get,我需要设计一个API端点,它接受GET请求的复合标识符列表 假设标识符是这两个属性的组合: 类型-int-可以有多个关联的ID id-int-可以属于多种类型 假设客户机想要查询以下项目: 第10类,id 99 第10类,id 98 第11类,识别号89 第12类,识别号79 设计这个的标准方法是什么 我一直在考虑的一些选择 单个查询字符串参数,应具有显式顺序的type:id /endpoint?typeid=10:99&typeid=10:98&typeid=11:89&typeid
- 类型-int-可以有多个关联的ID
- id-int-可以属于多种类型
- 第10类,id 99
- 第10类,id 98
- 第11类,识别号89
- 第12类,识别号79
type:id
/endpoint?typeid=10:99&typeid=10:98&typeid=11:89&typeid=12:79
/endpoint?q=type:10+id:99&q=type:10+id:98&q=type:11+id:89&q=type:12+id:79
/endpoint?q=type:10+id:99,type:10+id:98,type:11+id:89,type:12+id:79
使用查询参数是请求对实体进行服务器端筛选的“标准”方法 参数格式完全由您决定,因此,基本上,您的所有选项都没有错误。由于REST是关于统一接口的,所以您可以推断简单性和无歧义性是可取的。因此,你应该更喜欢简单明了的东西 在您的选项中,我会选择数字1,但这是基于参数名称的个人偏好(它带有更多的“语义”) 您当然知道,当您需要执行非常复杂的筛选时,查询参数并不总是很好的。另一种方法是设计“filterRequest”资源并使用POST与之交互 操作的意义是: