REST API端点命名

让我们考虑一下,我有这个模型Car

 { id: id, name: name, color: color } 

而关于我有这些终点,通过ID获得一辆车:

 GET http://example.com/api/cars/:id 

 GET http://example.com/api/cars (get all cars ) 

例如,命名只能获取红色汽车的terminal的最佳做法是什么?

为什么不在现有的/cars端点中使用color查询参数?

 GET http://example.com/api/cars?color=red 

你只是过滤一个集合。 这就是查询参数。


在Express中,使用req.query.color获取color查询参数的值。 有关更多详细信息,请查看Express API参考 。

为了让所有的红色汽车使用这个

 GET http://example.com/api/cars?color=red 

为了获得具体的红色汽车使用这个

 GET http://example.com/api/cars/{id}?color=red 

为什么不使用这个

得到所有红色汽车

 [GET] http://example.com/api/car?color=red 

得到红色的特定车

 [GET] http://example.com/api/car?color=red&id=xxx