当前位置:首页 > 公众号精选 > 架构师社区
[导读]前言客户端请求API,通常需要通过返回码来判断API返回的结果是否符合预期,以及该如何处理返回的内容等。相信很多同学都吃过返回码定义混乱的亏,有的API用返回码是int类型,有的是string类型,有的用0表示成功,又有的用1表示成功,还有用“true”表示成功,碰上这种事情,只...



前言



客户端请求API,通常需要通过返回码来判断API返回的结果是否符合预期,以及该如何处理返回的内容等。
相信很多同学都吃过返回码定义混乱的亏,有的API用返回码是int类型,有的是string类型,有的用0表示成功,又有的用1表示成功,还有用“true”表示成功,碰上这种事情,只能说:头疼。
API返回码的设计还是要认真对待,毕竟好的返回码设计可以降低沟通成本以及程序的维护成本。


HTTP状态码参考



以HTTP状态码为例,为了更加清晰的表述和区分状态码的含义,HTTP状态做了分段。



对于后端开发来说,我们通常见到的都是:
2XX状态码,比如200->请求成功。
5XX状态码,比如502->服务器异常,通常就是服务没正常运行,或者代码执行出错。
通过状态码即可初步判断问题原因,HTTP状态的设计思路值得借鉴。


参数约定



虽说是返回码设计,但是只有code是不行的,还要有对应的message,让人可以看懂。



参考HTTP状态码的思路,我们对错误码进行分段。



通过这样的设计,不论是程序还是人都可以非常方便的区分API的返回结果,关键是统一!


个性化Message



通常我们的Message都是写给工程师看的,但是在不同的场景下,同样的错误,可能需要给用户看到不一样的错误提示。
比方说20000-29999表示订单创建失败:
  • 20001,订单创建失败,存在进行中的订单


  • 20002,订单创建失败,上一个订单正在排队创建中



这两种错误情况如果是给用户看,可能就只适合看到:很抱歉,您有一个正在进行中的订单,请到我的订单列表中处理。
但是对于API来说,返回的信息又必须是准确的,但用户看到的就必须转译,这个转译的工作调用方可以做,但是通常API提供者来提供个性化的Message能力会更好。
我们可以把转译的消息配置到数据库,并缓存到Redis或者API本机。



然后在请求处理结束即将返回的时候,根据application_id code,去匹配替换message。



这样我们就可以让手机APP的用户、微信小程序的用户、网页下单的企业用户看到不同的消息。


返回信息的统一处理



有了统一的code,我们就可以通过Nginx或者APM工具统计API请求Code数量及分布信息。
我们可以根据单位时间内99999的数量来做API的异常告警。
我们可以根据Code的返回饼图,帮助我们发现系统、业务流程中的问题。
等等……
总之,好的返回码设计,可以帮助我们提高沟通效率,降低代码的维护成本


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

北京2024年4月16日 /美通社/ -- 4月13日至14日,第二十届中国人力资源服务业高峰论坛和第十届亚太人力资源技术与服务博览会在深圳举办。会上同步发布"第十届亚太人力资源服务奖",众合云科凭借在跨地域用工合规和S...

关键字: 数字化 SAAS API

基于 NVIDIA Jetson 平台进行开发的 1 万多家公司现在可以利用全新的生成式 AI、API 和微服务来加快推进行业数字化

关键字: 机器人 生成式 AI API

爱立信发布全球首个为开发者与企业提供通信和网络API的商业化运营商合作 API平台将为运营商开辟网络投资变现新途径,并驱动移动基础设施投资 北京2023年9月22日 /美通社/ -- 近日,爱立信利用网络...

关键字: API 爱立信 网络 德国电信

(全球TMT2023年9月5日讯)由全球云通信平台Infobip英富必赞助、全球领先IT市场研究和咨询公司IDC发布了题为《利用对话式商务的力量重塑用户体验》的最新市场研究,重点介绍了在亚太地区,人工智能驱动的对话式商...

关键字: 人工智能 PAAS 电子 API

马萨诸塞州剑桥市2023年8月4日  /美通社/ -- Akamai Technologies, Inc.(纳斯达克股票代码:AKAM)是一家致力于支持并...

关键字: API SECURITY AI BSP

北京——2023年7月13日 亚马逊云科技日前宣布推出金融支付加密服务Amazon Payment Cryptography,为支付处理类应用程序提供加密及密钥功能,简化客户在处理借记卡、信用卡和储值卡的支付应用过程中为...

关键字: 密钥 API 亚马逊云科技

北京2023年3月2日 /美通社/ -- 2023世界移动通信大会(MWC2023)期间,爱立信总裁兼首席执行官鲍毅康(Börje Ekholm)在GSMA会议中发表演讲。鲍毅康指出,"数字化十年&q...

关键字: 数字化 爱立信 5G API

据业内信息报道,近日 OpenAI 正式开放了 ChatGPT API,允许第三方开发者将 ChatGPT 集成到自己的应用程序和服务中,开发人员也可以灵活地选择特定版本。

关键字: OpenAI ChatGPT API

Orange、西班牙电信和沃达丰与爱立信及Vonage一起展示如何向全球开发者社区开放,并让该社区方便使用先进的移动网络功能。 此次在世界移动通信大会期间的演示是一座行业里程碑。运营商在GSMA开放式网关倡议框...

关键字: 开发者 应用开发 5G网络 API

北京2023年2月24日 /美通社/ -- 近期全球母基金协会于瑞士苏黎世发布了"2022全球最佳投资机构榜单"。CE Innovation Capital(简称"CEiC")以优...

关键字: IC CE TOP API
关闭
关闭