布尔和解析器API方法URL约定

问题描述:

对于其他API开发,我们正在使用以下URL约定,但需要关于如何为布尔和解析器方法形成准则的建议。布尔和解析器API方法URL约定

下面的链接的,我们正在使用Employee实体:

  1. 创建员工 - POST /员工
  2. 更新员工 - PUT /员工/(编号)
  3. 删除员工 - 删除/员工/ {ID} 4.Read员工 - GET /员工/ {ID}

  4. 查找XXX -GET /员工(查询参数)

  5. ResolveXXX - 应该是什么URL?
  6. isValidEmployee - 应该是什么URL?

  1. ResolveXXX
开始=>

这听起来像你改变这种XXX资源的状态,所以我会去一个PUT

  1. isValidEmployee
开始=>

您可以简单地在Employee模型上具有IsValid布尔属性,然后让客户端获得该模型,然后检查属性

+0

解析器不会更改状态。它更像是发现者的方法。如果没有找到实体,它将返回错误而不是返回null。对于布尔方法,我可能像isValidEmplyeeByDeptId,IsvalidEmployeeForSlary一样,像isValidEmployeeXXX一样。所以我可能有'n'个布尔方法。 –

+0

解析器不会改变状态。它更像是发现者的方法。如果没有找到实体,它将返回错误而不是返回null。对于布尔方法,我可能像isValidEmplyeeByDeptId,IsvalidEmployeeForSlary一样,像isValidEmployeeXXX一样。所以我可能有'n'个布尔方法。关键在于客户知道employeeId并且他想要发布一系列布尔方法。 –

+0

你正在以一种非常SOAP的方式思考,如果你想在资源,动词和http方面实现[REST](http://martinfowler.com/articles/richardsonMaturityModel.html),你需要改变它状态代码,而不是方法;因此,解析器听起来像一个GET,它返回404没有找到而不是抛出一个错误,而对于验证,您可以简单地返回另一个属性(除了IsValid之外),就像包含_invalid_属性的数组 –