我有一个用户身份验证API,它返回一个包含一些数据的对象,包括状态代码,例如。 200.即使凭据不正确,我发送200状态消息但响应对象的状态字段具有状态401和消息"不正确的凭证"。所以我的问题是,哪个响应是正确的?即使证书不正确,我发送200状态消息,然后在响应对象内我必须再次检查凭据是否正确,或者第二,如果凭证不正确,我发送状态401和响应对象
答案 0 :(得分:0)
我认为最好在HTTP标头中返回它。通过这种方式,客户端可以以更简单的方式知道错误。最后它更直接。
答案 1 :(得分:0)
可取的方法是返回标题中的http状态和代码。这样,用户可以使用本机方法来响应响应。如果您的服务中出现意外错误并且您无法从中形成漂亮的响应对象,则用户仍然能够处理它,因为响应将具有正确的HTTP状态代码。如果用户总是希望您的API返回一个对象,那么他/她在这种情况下遇到麻烦。当然,你可以告诉他们考虑到这一点,但是用户必须实现额外的逻辑来处理两种响应。
可是:
你可以像我一样做:让用户选择!
我在url中放了一个变量,告诉服务是否使用正确的代码返回http响应。 网址看起来像这样:
/some_path/{real_http_code}/some_path_or_data
{real_http_code}
是真/假文本。如果确实如此,我们的服务知道使用正确的HTTP状态代码返回响应。如果为false,则服务将始终返回200 OK响应,并且如果出现问题,用户必须检查响应。
所以,网址看起来像这样:
/some_path/true/some_path_or_data
起起落落:
+使用户可以自由选择
- 必须在服务中实现附加逻辑