我应该将内部服务器错误封装到 SOAP 错误中吗?

Should I encapsulate internal server errors into SOAP faults?

比如说,数据库不可用——我应该只用代码 500 响应,还是 return SOAP 错误消息 "Service unavailable"?

会更好

这方面的最佳做法是什么?

依我看,应该是SOAP Fault。对于使用您的 API.

的开发人员来说,这是一件好事

大多数不同语言的 SOAP 客户端库会将其视为 exception,这将允许开发人员将 SOAP 调用包装在 try/catch 块中。开发人员不必使用 SOAP 检测 HTTP 响应代码。

此外,一些 SOAP 服务器将 return 状态代码为 500 的故障。当您使用 SOAP 错误响应时,您可能会发现您的语言会自动执行此操作。