虽然写了挺久项目了,但一直以来都有个疑问,看一些项目提供的 API 文档,为每个 API 单独提供了可能返回的错误码列表,每个 API 不太一样
我很疑惑的一点就是,这种 API 的错误码列表是怎么整理出来的,因为这种列表并不像是能自动分析出来或人力可以总结出来的东西。因为每个 API 内部都会一层层调用各种方法、service 、repository 。
随着业务复杂,经过一层层的不断调用,一个 API 可能不知不觉就间接地调用了某个会抛出错误码的方法你自己都不知道
比如有几个 API
用户信息 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 文档是怎么总结出这些错误码的?难道根据语言不同,有对应的代码分析工具?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.