两个(或更多)语法相同资源的RESTful URI

时间:2016-05-31 00:53:33

标签: rest strongloop httpverbs

我有两个带有以下签名的REST端点:

DELETE /v2/cars/:carId *where carId is an integer*

DELETE /v2/cars/:carMake *where carMake is a string*

看来Strongloop不能很好地处理这个问题,因为它假设输入始终是carName而不是carId。也许只有两个这样的资源才是不好的做法......

围绕这个或更好的设计有什么好方法?

我是否应该使用Strongloop代理对这两个端点的调用,附加查询参数'byCarMake'?

/v2/cars/porche?byCarMake=true

或资源位置错误?我可以这样做:

DELETE /v2/cars/carId/byCarId

这些都不是一个好的解决方案。那么,根据REST标准,处理这样的事情的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

我对Strongloop一无所知,但对Restful API一无所知。

最好保持端点URL的精简,并且查询参数非常适合在GET请求上进行过滤/排序。但如果目的是删除汽车,我会说你需要的东西更适合而不是查询参数。

您可以将名词反转以提供以下端点

/v2/makes/:carMakeId/cars/

GET将返回指定汽车制造商的所有汽车

DELETE将删除指定汽车制造商的汽车