RESTful URI,创建新名词/ uri或添加查询参数

时间:2013-04-13 14:50:00

标签: http rest uri data-modeling restful-url

我有一个Person类,与Employment有一对多的关系。 CRM中的人员可以拥有多个员工(历史数据)。

我这个类的当前REST URI如下所示:

http://domain/persons GET [collection]
http://domain/persons/{id} GET [resource]
http://domain/persons/{id}/employments GET [collection]

要获得CURRENT活跃就业(所以endDate为NULL的工作)我应该创建一个URI还是应该使用QueryParam来完成?

基本上我应该这样做:

http://domain/persons/{id}/employments/current GET [resource]

http://domain/persons/{id}/employments?current GET [collection with query param filter]

我正在考虑第二个(使用queryparam),因为据我所知,REST应该使用不可更改的URI来标识资源。由于当前的就业岗位可以改变,因此应该使用QueryParam。

你有什么建议?

1 个答案:

答案 0 :(得分:1)

我会通过识别这样的每个就业来做到这一点:

http://domain/persons/{id}/employments/{id} GET [resource]


根据评论信息更新:

当用户拨打GET http://domain/persons/{id}/employments/时,她可以使用?state=current之类的过滤器,该过滤器将返回引用当前就业的资源,并由http://domain/employments/{id}等唯一标识。