在RESTful HTTP API响应的状态行中本地化原因短语

我们有一个通过HTTP公开的RESTful API,它以自然的方式利用HTTP状态行(状态代码和原因短语)将API结果传达给客户端(http://www.w3.org/Protocols/ RFC2616 / RFC2616-sec6.html)。 例如,我们有一个并发错误的状态行: HTTP / 1.1 409资源由其他用户更新。重新加载并重试。 最近发现这些消息将呈现给针对我们的API构建的应用程序的最终用户,这意味着我们需要对它们进行本地化。我想知道在这种情况下这是否是一种被接受的方法,特别是考虑到这些消息的非ASCII字符集,或者原因短语(状态描述)是否应仅保留为低级消息和任何将使其成为“通路”的内容用户屏幕应该在响应体中传递?如果我们选择本地化原因部分,是否有任何东西可以咬我们以后? 在这种情况下,我们希望使用响应主体将新版本的资源传递给API客户端,并且包含其他数据并不能很好地发挥其作用。     
已邀请:
正如您从RFC中所知:   状态码旨在供使用   自动机和Reason-Phrase是   供人类用户使用 因此,值得尝试在简短和有点之间找到平衡,同时仍然是用户友好的。我见过的许多webservices都有一个状态节点(xml或json),其中包含代码和更人性化的消息,作为响应数据的一部分。 一个潜在的问题:在我们的一个RESTful API中,我们定制了原因短语以帮助调试。我们使用Pingdom监视正常运行时间,如果状态与RFC中建议的状态相匹配,则错误地仅接受服务可用 - (即
200 OK
)。在向他们指出这是不正确的之后,我被提到了RFC(!),尽管他们最终承认他们误解了它。     
没有商定的方法在原因短语中传递非ASCII字符,所以如果它需要在实验环境之外工作,我会非常小心地依赖它。 将本地化消息移动到响应正文中将更加可靠。     

要回复问题请先登录注册