API错误返回规范有哪些
本篇内容介绍了“API错误返回规范有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
成都创新互联公司执着的坚持网站建设,成都小程序开发;我们不会转行,已经持续稳定运营十多年。专业的技术,丰富的成功经验和创作思维,提供一站式互联网解决方案,以客户的口碑塑造品牌,携手广大客户,共同发展进步。
禁止通过抛异常形式返回API业务错误
API禁止抛Checked异常,即业务处理上的参数错误、逻辑错误、业务错误等禁止通过抛异常形式返回,应用Response#code, message表达业务错误。
注:不要逼调用方到处写try{}catch()。
正例:
1 |
Response |
反例:
1 |
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException; |
禁止通过抛异常形式返回API业务错误
API禁止抛Checked异常,即业务处理上的参数错误、逻辑错误、业务错误等禁止通过抛异常形式返回,应用Response#code, message表达业务错误。
注:不要逼调用方到处写try{}catch()。
正例:
1 |
Response |
反例:
1 |
T saveDesposit(...) throws ServiceException, IllegalArgumentException, ValidationException; |
需要调用方做错误细分处理的,API提供方务必一并提供判断工具类
正例:
1 2 3 4 5 6 7 8 9 10 11 |
public void saveXXX(){ Response |
反例:
1 2 3 4 5 6 7 8 9 10 11 |
public void saveXXX(){ Response |
【推荐】API返回可直接显示给用户的中文提示信息
API失败时,只有API实现方最清楚是什么原因,该怎么提示。那么,请提供对应的提示信息。
我们系统中存在一些用国际化风格的error message,而当前的国际化实现方式真如你想的那么好用吗?
error message国际化原理:
代码中的提示信息国际化配置文件
国际化提示原理
1) 提示信息国际化的行为发生在Web层,Web层启动时会加载Web层的resources/messages提示信息文件
2)当REST API需要返回提示信息时,Web会根据HTTP 请求中的Locale值(例如:zh_CN、zh_TW、en_US、es_ES_Traditional_WIN等)来决定返回哪一种语言的提示信息。将errorMessage以此种语言方式返回给浏览器进行提示。
问题:
1)在分布式系统中,各个应用按领域自治,其resources/messages只维护了自身业务需要的errorMessage。
2)当图中C Service 将errorMessage = template.status.not.match 返回给 XX Service,XX Service直接透传给XX Web的情况下,XX Web的resources/messages是不包括template.status.not.match的,所以此errorMessage将无法正确的展示其本应该提示的信息。
所以,推荐API返回可直接显示给用户的中文提示信息。
正例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
反例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
【推荐】返回具备可读性,引导性的错误提示信息
正例:
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
反例:
例1
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
例2
1 2 3 4 5 6 7 8 9 10 11 12 |
public Response |
“API错误返回规范有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
网页标题:API错误返回规范有哪些
文章源于:http://azwzsj.com/article/ipjces.html