布尔和解析器API方法URL约定
问题描述:
对于其他API开发,我们正在使用以下URL约定,但需要关于如何为布尔和解析器方法形成准则的建议。布尔和解析器API方法URL约定
下面的链接的,我们正在使用Employee实体:
- 创建员工 - POST /员工
- 更新员工 - PUT /员工/(编号)
删除员工 - 删除/员工/ {ID} 4.Read员工 - GET /员工/ {ID}
查找XXX -GET /员工(查询参数)
- ResolveXXX - 应该是什么URL?
- isValidEmployee - 应该是什么URL?
答
开始=>
- ResolveXXX
这听起来像你改变这种XXX资源的状态,所以我会去一个PUT
开始=>
- isValidEmployee
您可以简单地在Employee模型上具有IsValid布尔属性,然后让客户端获得该模型,然后检查属性
解析器不会更改状态。它更像是发现者的方法。如果没有找到实体,它将返回错误而不是返回null。对于布尔方法,我可能像isValidEmplyeeByDeptId,IsvalidEmployeeForSlary一样,像isValidEmployeeXXX一样。所以我可能有'n'个布尔方法。 –
解析器不会改变状态。它更像是发现者的方法。如果没有找到实体,它将返回错误而不是返回null。对于布尔方法,我可能像isValidEmplyeeByDeptId,IsvalidEmployeeForSlary一样,像isValidEmployeeXXX一样。所以我可能有'n'个布尔方法。关键在于客户知道employeeId并且他想要发布一系列布尔方法。 –
你正在以一种非常SOAP的方式思考,如果你想在资源,动词和http方面实现[REST](http://martinfowler.com/articles/richardsonMaturityModel.html),你需要改变它状态代码,而不是方法;因此,解析器听起来像一个GET,它返回404没有找到而不是抛出一个错误,而对于验证,您可以简单地返回另一个属性(除了IsValid之外),就像包含_invalid_属性的数组 –