我有一个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。
你有什么建议?
答案 0 :(得分:1)
我会通过识别这样的每个就业来做到这一点:
http://domain/persons/{id}/employments/{id} GET [resource]
根据评论信息更新:
当用户拨打GET http://domain/persons/{id}/employments/
时,她可以使用?state=current
之类的过滤器,该过滤器将返回引用当前就业的资源,并由http://domain/employments/{id}
等唯一标识。