我正在开发一个Web API,它会因多种原因返回Forbidden
http状态 -
我将以下列方式回复 -
return Content(HttpStatusCode.Forbidden, message); //message : "Limit reached" etc.
现在,我需要在客户端以不同的方式处理这些原因。我应该从退回的消息中找出原因吗?此消息将显示给用户,并可能在将来更改。
最佳做法是什么?
答案 0 :(得分:0)
您的错误消息应该是您客户的描述。理想情况下,您需要包含以下信息:
cache is out-of-date
"," service A is unavailable
")this time is booked already
"," company A is closed and cannot be modified
")refresh your cache
"," try again in 5 minutes
"," request permission A from administrator
") error_code: 100
"。还应在文档中描述自定义代码。您可以依赖客户的代码并妥善处理你的意思是:
用户未经验证。
如果用户未经过身份验证(api不知道谁是他),api应该返回401
http状态代码。如果用户缺少某些权限,因此无法修改资源,403
完全正常。但是,描述哪些权限确实缺失会很棒
答案 1 :(得分:0)
最佳做法是什么?
您应该寻找标准化的内容,例如Problem Details for HTTP APIs,而不是尝试发明自己的模式。
问题详情描述了一个人类可读的标题"和"细节"字段和"类型"这是人类可读文档的链接。
消费者必须使用"类型" string作为问题类型的主要标识符; "标题" string是建议性的,仅包括那些不了解URI语义且无法发现它们的用户(例如,离线日志分析)。消费者不应自动取消引用类型URI。
消费者不应该解析"细节"信息成员; extensions更适合获取此类信息且不易出错的方式。