教你怎么给接口定义错误码

错误码一般包括三个要素:

  • 前缀标识:区分错误类型,比如请求不合法,还是服务器处理错误。
  • 模块标识:区分到底是哪个模块的错误。
  • 错误代码:区分具体是什么问题。

从错误码的符号组成上看又分为三类:

  • 纯数字
  • 数字+字母组合
  • 纯字母

按照使用的分隔符的不同,又有:

  • 无分隔符,按照数字的位数分割
  • 使用"-"分割
  • 使用"_"分割
  • 使用"."分割

接下来介绍三种常用的错误码的规则。

纯数字-无分隔符,企业微信的开放接口就是这种规则。
在这里插入图片描述
"0"作为特殊的错误码,表示成功,其余表示失败。

错误码由五位数字组成:

  • 第一位数字:代表错误的类型,比如"4"就是请求不合法;"5"就表示服务器处理错误。
  • 第二位数字:表示在错误类型下的分组,比如“40”是一类请求错误,“41”又是另一类请求错误。
  • 后三位数字:具体的错误,范围从001~999,这个范围基本上是够用的。

这种规则优缺点都是非常明显的:

  • 优点:规则非常简单,且对英语水平没有要求。
  • 缺点:通过错误码看不到任何有用的信息,必须查错误码表

字母+数字组合,比如华为云的一些开放接口,就是使用这种错误码。
https://support.huaweicloud.com/api-oms/ErrorCode.html
在这里插入图片描述
错误码只有两部分:前缀和错误编码,因为系统功能比较单一,所以也没必要按模块划分。

这里使用“.”作为分隔符,可以根据习惯选择其他分隔符。

这种错误码的规则是我比较推荐的。

  • 首先,它一定程度上降低了纯数字错误码的不便。因为前缀是英文,所以能很快的定位是哪个模块除了问题。
  • 其次,错误编号部分使用数字,也避免了程序员起名纠结问题。

纯字母,阿里云的一些产品就是这种错误码。
在这里插入图片描述

这种错误码,我在项目中用过一段时间,后来被直接劝退——很多时间都浪费在起名字上了。现在有了AI,起名字不再是问题,但是你无法保证团队其他成员也能认真的起名,总之到最后很容易乱。

不推荐。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络发展历程及SD-WAN的优势

自网络出现以来,经历了不同时期的发展阶段,而SD-WAN作为网络发展的新趋势,以其独特的优势满足了当今企业对于高效、灵活和成本控制的网络需求。 一、网络发展历程 (1)初始阶段:专线网络 从1980年代到2000…

VBA数据库解决方案第八讲:SQL语句及打开记录集

《VBA数据库解决方案》教程(版权10090845)是我推出的第二套教程,目前已经是第二版修订了。这套教程定位于中级,是学完字典后的另一个专题讲解。数据库是数据处理的利器,教程中详细介绍了利用ADO连接ACCDB和EXCEL的方法…

20240202金融读报1分钟小得

1、今年份KPI?沿江沿河省级分行要继续坚持开展“长江行”“黄河行”活动,深入研究不同区域、不同河段的特点和需求,研究制定差异化、多元化金融服务方案。 2、作为长线投资者,联博对中国股市非常乐观。当前A股市场是全球最具吸引力…

Ubuntu 编译安装 nginx

Ubuntu 22.04.1 LTS 编译安装 nginx-1.22.1 安装依赖 sudo apt install libgd-dev 下载nginx wget http://nginx.org/download/nginx-1.22.1.tar.gz 解压nginx tar -zvxf nginx-1.22.1.tar.gz 编译安装 cd nginx-1.22.1 编译并指定安装位置,执行安装之后会创建指…

flowable 设置自定义属性教程

概述 由于工作需要给flowable工作流设计器添加自定义属性,以满足功能实现。所以这篇文章介绍下用flowable 开源的的flowable-ui 前端添加自定义属性,后端解析属性值的例子。 技术栈 序号技术点名称版本1Flowable6.8.0 使用的是flowable6.8.0 版的代码…

画质和场景双需求下,海信电视U8KL的变与不变

又到一年春节,最近几年大家过年的方式越来越丰富,但是跟家人在一起看春晚依然是主流,电视也是过年不可或缺的家庭成员。 当然,随着大家对生活品质的要求更高,对电视的要求也变得更高了。比如,现在春晚直播…

Java实现对接微信支付功能接口详解(二)

本系列文章简介: 微信支付是一种在线支付解决方案,允许用户通过微信内的支付功能进行付款。它提供了多种支付方式,包括扫码支付、公众号支付、小程序支付等。在Java应用程序中实现微信支付功能,可以为用户提供方便快捷的支付体验。…

爬虫笔记(三):实战qq登录

咳咳,再这样下去会进橘子叭hhhhhh 以及,这个我觉得大概率是成功的,因为测试了太多次,登录并且验证之后,qq提醒我要我修改密码才可以登录捏QAQ 1. selenium 有关selenium具体是啥,这里就不再赘述了&#x…

leetcode c++ 超出内存限制

给两个主要原因,这两个原因,如果在递归或者循环里就很容易导致内存超出限制 首先就是误用 如果只是变量的变化实现的话,或者-就可以了,不需要写成AAx的形式,那样会重新开辟一块内存 其次就是值传递 值传递也是会开辟…

在Linux中对Nginx进行安全加固

准备工作 在IP为x.x.x.x的服务器上安装nginx,确保Linux系统为nginx环境。 检查nginx是否配置nginx账号锁定策略 配置nginx账号锁定策略,降低被攻击概率。 第一步,查看nginx的锁定状态。 命令:passwd -S nginx 若结果出现“P…

【gcc】webrtc发送侧计算 丢包率

大神的分析 : 提到: 每当收到cc-feedback或者收到RR-report的时候就能统计出丢包率,在cc-controller中就会调用SendSideBandwidthEstimation::UpdatePacketsLost()去更新丢包率,同时进行码率预估 G:\CDN\rtcCli\m98\src\modules\congestion_controller\goog_cc\send_side_b…

今日arXiv最热NLP大模型论文:像人一样浏览网页执行任务,腾讯AI lab发布多模态端到端Agent

Agent的发展成为了LLM发展的一个热点。只需通过简单指令,Agent帮你完成从输入内容、浏览网页、选择事项、点击、返回等一系列需要执行多步,才能完成的与网页交互的复杂任务。 比如给定任务:“搜索Apple商店,了解iPad智能保护壳Sm…

数据结构与算法--面试问答

问题与简答 数据结构与算法篇 1. 概述 解决问题的效率 解决问题方法的效率,跟数据的组织方式有关,跟空间的利用效率有关,也跟算法的巧妙程度有关 抽象数据类型 抽象数据类型(Abstract Data Type,ADT)是一种对"数据类型…

Qt中的绝对位置与相对位置

在Qt的开发中,有时候需要获取鼠标点击的位置的坐标。在Qt中坐标分为相对坐标和绝对坐标;相对坐标是以控件的左上角为(0,0)点的坐标系的坐标,绝对坐标是以显示器屏幕的左上角为(0,0&a…

蓝桥杯-常用STL(二)

常用STL 🎈1.集合🎈2.set的基础使用🔭2.1引入库🔭2.2插入元素🔭2.3删除元素🔭2.4判断元素是否存在🔭2.5遍历元素🔭2.6清空 🎈3.set与结构体 🎈1.集合 &#x…

【Algorithms 4】算法(第4版)学习笔记 04 - 2.1 初级排序算法

文章目录 前言参考目录学习笔记1:前置说明1.1:全序关系1.2:Comparable API 实现 demo1.3:排序算法模板2:选择排序2.1:内循环实现过程拆解2.2:代码实现2.3:特点3:插入排序…

【kubernetes】集群网络(二):Flannel的VxLan、Host-GW模式

文章目录 1 Pod的IP地址的分配2 CNI3 Flannel3.1 Flannel的安装3.2 VxLan3.3 Host-GW 4 总结 1 Pod的IP地址的分配 当节点上只安装了docker,则会用veth pairdocker0实现单个节点上容器之间的通信,并且这些容器都在同一个IP段,如果不修改&…

(2024,SaFaRI,双三上采样和 DFT,空间特征和频率特征)基于扩散模型的图像空间和频率感知恢复方法

Spatial-and-Frequency-aware Restoration method for Images based on Diffusion Models 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0. 摘要 3. 方法 3.1 修改数据保真度 3.2 …

JMeter GUI:测试计划和工作台

什么是测试计划? 测试计划是您添加 JMeter 测试所需元素的地方。 它存储运行所需测试所需的所有元素(如线程组、计时器等)及其相应的设置。 下图显示了测试计划的示例 测试计划是您添加 JMeter 测试所需元素的地方。 它存储运行所需测试…

Modbus协议学习第六篇之基于libmodbus库的示例程序(可以联合Modbus模拟仿真软件进行调试)

前置工作 学了这么多Modbus的知识,如果不进行实际的操作,总感觉懂的不透彻。基于此, 本篇博文就带各位读者来了解下如何通过编写程序来模拟与Modbus Slave仿真软件的通讯。当然了,这里有两个前提,如下: 1.请…