要通过RESTful API关注和取消关注一个人,我有
- POST / person / bob / follow
- DELETE / person / bob / follow
它们应该在体内返回什么?
- 您关注的每个人的集合
- 你刚跟随/不跟进的人
- 状态如{status:“ok”}
- 没有。
要通过RESTful API关注和取消关注一个人,我有
它们应该在体内返回什么?
如果使用HTTP服务器状态响应错误,则状态代码不会说任何内容。如果在没有用户Bob的情况下回复404 Not Found,或者如果数据库损坏则回复500 Internal Server Error,那么您将获得的唯一成功响应是OK。用户不必检查状态代码,只需检查HTTP状态代码即可。
我建议你什么也不返回,而且这是一个成功的响应(即200 OK或204 No Content)这一事实表明操作是成功的。
这完全取决于您的app / API设计以及您将与客户/呼叫者定义的合同。但通常情况下,在所有情况下,您都应返回状态代码,以使您的客户端了解结果。
喜欢: respond(ResponseCode::OK, ...)
对于 POST
:我将返回'bob'对象,其中包含所有关注者+状态代码
对于 DELETE
:我只返回状态代码。
通常,对于API,我是道歉者,使用HTTP状态代码而不是始终确定具有代码定义状态。 这意味着您可以按照现有的标准获得答案,任何获得错误代码的人都会大致知道发生了什么/他们必须做什么。 看一下wiki文章 http状态代码 有用的参考手册。
此外,与错误代码一起,并且因为我们正在谈论的API,有关错误的更具描述性的消息是有用的。像错误一样有意义的东西:“Auth token missing”,或者你可能提出的任何标准。
在创建资源时,我通常会回复201(创建)和刚刚创建的资源。请记住,您可能希望从资源中排除某些属性(例如,您正在创建用户,您不应该返回敏感信息,例如加密密码)
关于资源的删除,通常以200(Ok)或202(已接受)返回,并且没有额外信息。
然而,正如@yek所提到的,它在很大程度上取决于API消费者的承诺。最重要的是你要体面地记录API并解释应该是什么样的期望。