我正在开发针对远程服务器运行的 iOS 应用程序,背后有另一个开发人员。我们正在编写的项目和 API 草案处于初始阶段。
我们面临的问题是我们对现有的 HTTP/REST 规范描述的常规状态代码数量不满意:在某些情况下,我们不确定要选择什么代码。
提供最少上下文的示例:
服务器端验证错误。外汇。客户端验证没问题,但服务器 API 最近略有更改,因此服务器应该返回一些内容,表明这正是验证问题。
尝试注册已存在的用户。SO主题没有提供任何精确的观点。
用户已注册,并在未完成密码确认过程的情况下尝试登录。
我们在这里看到两种明显的方法:
在找不到适当的常规状态代码的情况下使用 fx 400 错误。这将导致我们从 JSON 响应中解析错误文本消息。显然,这种方法会在客户端代码中引入多余的复杂性。
创建我们自己的子代码系统并在我们的代码中依赖它。这涉及太多人为的惯例,这将导致我们变得过于固执和武断。
感觉这种情况的数量会增加,我们正在考虑在我们的服务器应该提供的 JSON 响应中引入自定义子代码(即选择第二种方法)。
我在这里问的是:
对于这些情况,推荐的方法、策略,甚至是胶水或技巧是什么?
不严格遵循状态代码的 REST/HTTP 约定有什么好处?
谢谢!