我的应用程序发送给第三方SOA服务器的数据是复杂的XML.服务器所有者确实提供了XML模式(.xsd),并且由于服务器拒绝无效的XML消息,我需要在发送之前在本地验证它们.
我可以使用独立的XML模式验证器,但它们很慢,主要是因为解析模式文件所需的时间.所以我以HTTP服务器的形式编写了我自己的模式验证器(在Java中,如果这很重要),缓存已经解析的模式.
问题是:在验证过程中很多事情都可能出错.除意外异常和成功验证外:
由于它是HTTP服务器,我想为客户端提供有意义的状态代码.对于上述所有情况,服务器是否应答400错误(错误请求)?或者它们与HTTP无关,它应该在正文中回复200并带有消息?还有其他建议吗?
更新:主应用程序是用Ruby编写的,它没有一个好的xml架构验证库,因此单独的验证服务器不会过度工程.
我正在构建一些 REST API 以在本机 iOS/Android 应用程序中使用。其中一个端点允许用户通过提供 2 个字段来更新其密码:old_password和password。
如果 HTTP 状态码不正确,我应该使用哪个状态码old_password?
我的第一个想法是一个401错误,但当身份验证令牌无效时我已经使用它,并且它会自动触发应用程序中的注销。
400似乎不合适,因为请求实际上在语义上是正确的,它是一个特定的身份验证错误。或许422?