Php 如果操作可以';不能表演吗?
我正在用PHP为一个移动应用程序编写API。其中一个端点,Php 如果操作可以';不能表演吗?,php,json,api,mobile,backend,Php,Json,Api,Mobile,Backend,我正在用PHP为一个移动应用程序编写API。其中一个端点,create user.php,应用于向用户表添加新记录。如果应用程序正在尝试创建副本,该怎么办?我可以捕捉到这一点并返回一条错误消息(顺便说一下,这是什么?)。问题是,我是否也应该返回一个JSON,其结构如下: { "status": "The email already exists" } …为客户提供更多关于出错原因的信息?或者我应该只使用错误代码,就这样吗?如果您想向用户返回一些东西,我会返回一个简单的错误,就像您在示例中
create user.php
,应用于向用户表添加新记录。如果应用程序正在尝试创建副本,该怎么办?我可以捕捉到这一点并返回一条错误消息(顺便说一下,这是什么?)。问题是,我是否也应该返回一个JSON,其结构如下:
{
"status": "The email already exists"
}
…为客户提供更多关于出错原因的信息?或者我应该只使用错误代码,就这样吗?如果您想向用户返回一些东西,我会返回一个简单的错误,就像您在示例中遇到的一样,然后我还会在服务器上有一个日志文件,我会记录错误、内部异常、日期和时间以及您想要知道的任何其他信息,以便进行调试。这样,如果是简单的重复,用户可以修复问题并继续,但如果他们持续出现错误,您可以查看日志文件以找到真正的问题。返回http状态422和错误消息 422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(坏请求)状态代码不合适),但无法处理包含的指令。例如,如果XML请求体包含格式正确(即语法正确)但语义错误的XML指令,则可能会出现这种错误情况。 页面统计信息 具体地说: 422状态代码感觉更合适。服务器理解您试图做什么;它了解您提交的数据;它只是不让这些数据被处理 阅读Ben Nadel的更多内容:
此外,Laravel框架在其请求表单类中还通过“失败规则”(例如电子邮件已经存在)使用http状态422。请参见:这可能是优先选择。我会说使用一个错误代码。API应使用适用的响应代码。API可能会在响应正文中包含您想要的任何附加信息。我要补充的一点是,在json中也包含状态代码,例如
{“response_code”:400,“message”:“无法创建用户-电子邮件已经存在”}
,因此如果以后必须在头中抑制http代码(flash client Anywhere),响应仍然可用