我正在设计一个 REST API。
我有一个资源,我希望能够根据不同的条件更改其状态,例如URI 是:
应用程序/{application_id}/
可能的状态更改是将应用程序设置为:
每次状态更改都需要不同的信息,例如取消原因、签字日期。
有什么好看的 URI 可以处理这个问题?我曾想过
但我觉得不太对。
编辑:
我应该提到我已经在计划了 发布:应用程序/{application_id} 使用全套应用程序数据更新现有应用程序。
我会坚持使用一个 url 来表示所有状态,并让您的 Status 对象封装所有不同的属性。这些可以防止您的网址出现看起来像动作的文字,并且更加安静。
POST: Applications/{application_id}/status
public class Status
{
public string StatusType {get;set;}
public string CancelReason {get;set;}
public string SignOffDate {get;set;}
...
}
POST: Applications/{application_id}?cancel=true
POST 仅用于 CREATE。 我认为看跌期权将是更好的选择。
对于restful API,每个端点都将资源表示为名词。 你要对资源进行操作,操作可以分为操作/保留、操作/取消等
POST: Applications/{application_id}/operations/hold
POST: Applications/{application_id}/operations/cancel
POST: Applications/{application_id}/operations/signOff