我的应用程序交易要求用户注册才能使用该服务,并且要他们创建应用程序。接口的初始计划如下...Rest API需要额外的操作 - 如何构造?
POST /Users/Applications
- 创建应用程序并返回唯一标识符。
GET /Users/Applications/{id}
- 检索现有的应用程序。
PUT /Users/Applications/{id}
- 更新现有的应用程序。
DELETE /Users/Applications/{id}
- 删除现有的应用程序。
这看起来非常干净合理,并且充分利用了HTTP动词。不过,如果我现在需要在应用程序上进行其他操作,例如
ActivateApplication - 一旦所有的数据都在系统中使用PUT我现在希望用户激活他们的应用程序。这不仅仅是使用PUT更新应用程序状态的问题,还需要完成几项额外的工作来激活应用程序,例如向HR部门发送电子邮件。通知他们新的申请已经到达。
PrintApplication - 当从客户端调用时,将应用程序打印到办公室打印机。 (不是一个理想的例子,但你的想法,我敢肯定!)
我将如何构建我的REST接口来处理这种类型的请求?也许这样...
POST /Users/Applications/{id}/print
POST /Users/Applications/{id}/activate
...为激活我改变状态,所以我相信我需要使用POST。我知道REST是关于文档的,但是当我需要对文档执行操作时,如何构造我的API,而不仅仅是获取和更新文档本身?
对于激活,你有没有考虑过账到/用户/应用/ {ID}有例如IsActivated属性设置为true,更新的应用程序资源?然后,您可能需要在属性更改时处理事件,以便触发发送电子邮件等流程。 – elolos 2014-10-06 13:16:33