Http restfuluri';s、 创建新名词/uri或添加查询参数

Http restfuluri';s、 创建新名词/uri或添加查询参数,http,rest,uri,data-modeling,restful-url,Http,Rest,Uri,Data Modeling,Restful Url,我有一个与就业有一对多关系的Person类。CRM中的一个人可以有多个雇员(历史数据) 此类的当前REST URI如下所示: http://domain/persons GET [collection] http://domain/persons/{id} GET [resource] http://domain/persons/{id}/employments GET [collection] 要获取当前的活动就业(因此endDate为NULL的就业)我应该创建一个URI,还是应该使用Que

我有一个与就业有一对多关系的Person类。CRM中的一个人可以有多个雇员(历史数据)

此类的当前REST URI如下所示:

http://domain/persons GET [collection]
http://domain/persons/{id} GET [resource]
http://domain/persons/{id}/employments GET [collection]
要获取当前的活动就业(因此endDate为NULL的就业)我应该创建一个URI,还是应该使用QueryParam来完成

基本上我应该这样做:

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

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


你的建议是什么?

我会这样做,唯一地确定每一份工作:

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


根据评论信息更新:


当用户调用
GET时http://domain/persons/{id}/employments/
,她可以使用类似于
?state=current
的筛选器,该筛选器将返回引用当前就业的资源,并通过类似
的内容进行唯一标识http://domain/employments/{id}

我会这样做,唯一地识别每个就业岗位:

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


根据评论信息更新:


当用户调用
GET时http://domain/persons/{id}/employments/
,她可以使用类似于
?state=current
的筛选器,该筛选器将返回引用当前就业的资源,并通过类似
的内容进行唯一标识http://domain/employments/{id}

否,因为该资源已存在于域/employments/{id}中,因此它将对当前的就业执行HTTP 303。我更想说的是,当用户调用
http://domain/persons/{id}/employments GET[collection]
他得到一个表单列表
http://domain/employments/{id}
,对吗?然后,我认为它应该是一个查询参数,比如
?state=current
,响应应该是
http://domain/employments/{id}
与当前雇用关系。否,因为该资源已存在于域/employments/{id}中,因此它将对当前雇用关系执行HTTP 303。我更想说的是,当用户调用
http://domain/persons/{id}/employments GET[collection]
他得到一个表单列表
http://domain/employments/{id}
,对吗?然后,我认为它应该是一个查询参数,比如
?state=current
,响应应该是
http://domain/employments/{id}
与当前雇用关系。