Java 返回的正确HTTP错误代码是什么,404对412?
我正在设计RESTAPI。其中一个在家庭中创建房间的POST请求输入了家庭ID和房间名称,如:Java 返回的正确HTTP错误代码是什么,404对412?,java,web-services,http,rest,http-response-codes,Java,Web Services,Http,Rest,Http Response Codes,我正在设计RESTAPI。其中一个在家庭中创建房间的POST请求输入了家庭ID和房间名称,如: POST /webCall/development/construction <?xml version="1.0"?><room><home id='110001'/><name>large bedroom</name></room> 请提供您的建议和理由,这将有助于我做出正确的决定。下面是关于412状态代码的说明 在一个或
POST /webCall/development/construction
<?xml version="1.0"?><room><home id='110001'/><name>large bedroom</name></room>
请提供您的建议和理由,这将有助于我做出正确的决定。下面是关于412状态代码的说明
在一个或多个请求头字段中给定的前提条件
在服务器上测试时评估为false。此响应
代码允许客户端在当前资源上放置前提条件
元信息(标头字段数据),从而阻止请求的
方法不会应用于预期资源以外的资源
所以,如果您发送带有
您试图添加到的资源的
假设你在下面这样的地方发帖
/homes/some-identifier/rooms
您可能应该返回404,因为资源/homes/some identifier/rooms
不存在
如果你真的在做
POST /webCall/development/construction
<?xml version="1.0"?><room><home id='110001'/><name>large bedroom</name></room>
POST/webCall/development/construction
大卧室
那么409可能是最合适的。但是,我建议您将API更改为发布到实际的
主页资源。412由于Sotirios给出的原因是不正确的
404不正确,因为问题在于有效负载,而不是寻址资源(URI)
您可以使用400(通用)、409或422。400应该为格式错误的请求抛出。根据HTTP规范使用它是错误的,409也谈到了永久删除的资源,在这里似乎没有说服力…Vinet:请看一下并感谢Julian的回答如果URI在上面,那么404是正确的。但是,在本例中,URI标识一个通用处理程序,房间标识符位于有效负载中。在这种情况下,404将是错误的,因为请求URI标识的资源确实存在。@JulianReschke更新以使我的假设更加清楚。谢谢
POST /webCall/development/construction
<?xml version="1.0"?><room><home id='110001'/><name>large bedroom</name></room>