我知道以前有人问过这类问题。我有我的问题的解决方案,我想知道我是否在任何地方破坏了 REST 或 HTTP 主体。
在我的系统中,我有一个名为的资源member
,它支持通常的GET/POST/PUT
操作。成员的状态为Active
和Disabled
。我需要对禁用用户的操作进行建模。我理解为什么从 REST 的角度来看跟随是一个坏主意
POST api/member/john.smith/disable
我已经阅读了接受代表禁用成员请求的资源的解决方案,如下所示
public class DisableMemberRequest
{
public string Username {get; set;}
}
然后是POST
上面的资源
POST api/DisableMemberRequest
虽然这种方法听起来很合理,但我觉得这在干净的 API 接口方面是不正确的。200 OK
上述请求的响应是否应该是 a或是值得商榷201 Created
的202 Accepted
。
我在想,我会创建一个名为的新资源DisabledMember
,并且PUT
该资源上的 a 意味着应该禁用特定成员,如下所示
PUT api/disabledmember/john.smith
从 REST/HTTP 的角度来看,这在我看来是一个完全有效的设计。但我不是专家,我想与长期从事这项工作的人一起验证这一点。
编辑
在与此页面上的其他程序员互动后,我正在添加这些详细信息。禁用成员的过程不仅仅是在成员上设置状态标志。当成员被禁用时,还需要触发其他工作流。