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