我正在开发一个RESTful API服务,最初只会接受和响应JSON格式。我想遵循标准,并在请求者的情况下接受标题不同于JSON我想用406 HTTP状态代码进行响应以通知请求者我无法以其他格式输出数据。如何正确发送406状态码?
根据W3我“应该包括含有可用的实体特征和位置(S),用户从该用户或代理可以选择一个最合适的列表的实体”在我的响应。
我该怎么做,因为上面的解释没有告诉我很多。什么是实体?
任何意见/建议?
编辑
起初我想,也许可以在内容类型头一个逗号分隔的列表,但也许重新考虑后,我应该做同样的事情浏览器做的,使用接受头?这实际上更有意义,但我找不到任何信息来支持这一点。
+1个人而言,我将使用text/plain作为406的返回内容类型,并包含一些文本,如'此服务仅提供应用程序/ json' – 2010-12-17 00:39:33
@fumachu我不希望类型为在URI中,我想通过Accept和Content-Type头部“正确地”完成它(尽管它可能有点OTT)。我也知道浏览器倾向于发送'*/*'在这种情况下会使用默认的输出格式(在这种情况下是JSON)。 – 2010-12-18 15:53:42
@fumachu谢谢澄清,这个“实体”的东西是实际的回应。我在阅读文档时一定错过了它(或者没有明确说明)。 – 2010-12-18 15:54:39