很好奇 API 单位的 error code(错误码)到底是怎么整理出来的

15次阅读

共计 891 个字符,预计需要花费 3 分钟才能阅读完成。

虽然写了挺久项目了,但一直以来都有个疑问,看一些项目提供的 API 文档,为每个 API 单独提供了可能返回的错误码列表,每个 API 不太一样

我很疑惑的一点就是,这种 API 的错误码列表是怎么整理出来的,因为这种列表并不像是能自动分析出来或人力可以总结出来的东西。因为每个 API 内部都会一层层调用各种方法、service、repository。

随着业务复杂,经过一层层的不断调用,一个 API 可能不知不觉就间接地调用了某个会抛出错误码的方法你自己都不知道

比如有几个 API

  • 用户信息 GET /user/xxxxx
  • 预约信息 GET /reservation/xxxxx
  • 主页信息 GET /honme
  • 店铺信息 GET /shops

用户信息 API 为了获取到用户信息,调用了 UserInfoRepository.GetUserInfo(xxxxx) 获取用户信息。这个方法可能会甩出 UserNotExists, UserIsdBanned 等错误码,然后这个方法内部还调用了其他的各种工具函数,可能会甩出 UserIDNotCorrect, DBConnectionError,等等一大堆错误码。

然后预约信息 API 里因为也要获取用户信息,也调用了 UserInfoRepository.GetUserInfo(xxxxx)。这样预约信息 API 也会扔出 UserNotExists, UserIsdBanned 等错误码

然后主页信息 API 里因为需要展示用户预约信息,所以调用了获取预约信息的相关代码,从而间接调用了 UserInfoRepository.GetUserInfo(xxxxx) 这个方法。最后前三个 API 都经过简单或复杂的关联,最终都调用了 UserInfoRepository.GetUserInfo(xxxxx),会甩出同样的错误码。而第四个店铺信息 API 因为和用户无关,所以不会甩出对应错误码

这里就有个问题了,一个错误码经过复杂的调用可能会在任何 API 里被抛出来,似乎没有简单方法来分析一个 API 到底会抛出什么错误码。那么一些为 API 总结出各自错误码的 API 文档是怎么总结出这些错误码的?难道根据语言不同,有对应的代码分析工具?

正文完
 0