相关疑难解决方法(0)

用于搜索的RESTful URL设计

我正在寻找一种合理的方式将搜索表示为RESTful URL.

设置:我有两个模型,汽车和车库,汽车可以在车库.所以我的网址看起来像:

/car/xxxx
  xxx == car id
  returns car with given id

/garage/yyy
  yyy = garage id
  returns garage with given id
Run Code Online (Sandbox Code Playgroud)

汽车可以独立存在(因此/汽车),也可以存在于车库中.例如,在给定车库中代表所有车辆的正确方法是什么?就像是:

/garage/yyy/cars     ?
Run Code Online (Sandbox Code Playgroud)

车库yyy和zzz中的汽车联盟怎么样?

什么是代表搜索具有某些属性的汽车的正确方法?说:给我看看所有带4扇门的蓝色轿车:

/car/search?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

或者它应该是/汽车而不是?

使用"搜索"似乎不合适 - 什么是更好的方式/术语?应该只是:

/cars/?color=blue&type=sedan&doors=4
Run Code Online (Sandbox Code Playgroud)

搜索参数应该是PATHINFO还是QUERYSTRING的一部分?

简而言之,我正在寻找跨模型REST网址设计和搜索的指导.

[更新]我喜欢贾斯汀的答案,但他没有涉及多字段搜索案例:

/cars/color:blue/type:sedan/doors:4
Run Code Online (Sandbox Code Playgroud)

或类似的东西.我们怎么样

/cars/color/blue
Run Code Online (Sandbox Code Playgroud)

到多场案件?

rest

413
推荐指数
7
解决办法
18万
查看次数

在REST Web服务中使用查询字符串

我认为使用REST Web服务的一个主要特征和原因是使用路径参数而不是查询参数.但是许多公开可用的REST Web服务使用查询参数.

我认为查询参数不应该在REST Web服务中使用我错了吗?是否有关于不在REST Web服务中使用查询参数的建议或规则?

rest web-services query-parameters path-parameter

11
推荐指数
1
解决办法
2万
查看次数