Rest 对不支持的页面格式(如xml)的HTTP响应是否正确? 处境

Rest 对不支持的页面格式(如xml)的HTTP响应是否正确? 处境,rest,request,httpresponse,Rest,Request,Httpresponse,我正在尝试创建一个RESTAPI,用户可以在其中以不同的格式请求响应 例如,用户可以访问: example.com/oranges/1.xml(返回xml格式的结果) example.com/oranges/1.json(返回json格式的结果) 问题: 什么是正确的HTTP响应来表示特定的响应格式不可用? 例如,用户尝试访问: example.com/oranges/1.yml(不支持的格式) 我是抛出404还是有更好的响应?我会使用400。例如,请参见如果您在URL中编码所需的格式,那么40

我正在尝试创建一个RESTAPI,用户可以在其中以不同的格式请求响应

例如,用户可以访问:

example.com/oranges/1.xml(返回xml格式的结果)

example.com/oranges/1.json(返回json格式的结果)

问题: 什么是正确的HTTP响应来表示特定的响应格式不可用?

例如,用户尝试访问:

example.com/oranges/1.yml(不支持的格式)


我是抛出404还是有更好的响应?我会使用400。例如,请参见

如果您在URL中编码所需的格式,那么404确实是正确的响应——它告诉客户端,除非服务器发生更改,否则它永远无法对该URL执行任何操作


通过正确的HTTP内容协商,使用
Accept
请求头(这将是更多的重启者选择),不支持类型的适当响应将是406。

客户端错误HTTP 400错误请求如何?415用于客户端尝试发布(或放置)具有不支持类型的数据时。那是完全不同的情况。回答得好。诚然,我淘气地实现了我的api来使用406代码,不管它是在URL、get-params还是在Accept头中指定的——尽管它在REST中是错误的,404在技术上应该用于URL场景。我能被其他领主原谅吗