我目前正在编写一个API/一些用于棋类游戏的客户端。
开发人员应通过一个脚本(xhrframework.php)访问API并通过GET提交操作。他们在提交操作时可能会出现一些错误(未发送PHPSESSID,无效的PHPSESSID,移动无效,不是他们的回合等)。
因此,我考虑了如何显示错误的可能性。我想出了一些想法,告诉程序员他们犯了错误:
1. 通过清晰的英语错误消息
优点:清楚错误的意思
优点:可以添加有关如何修复此错误的信息
缺点:消息可能会因为我的英语不太好而改变
缺点:消息的长度差异很大-这对C程序员可能很重要
2. 通过英语错误消息常量-类似于WRONG_PHPSESSID,MISSING_PHPSESSID,INVALID_MOVE,NOT_YOUR_TURN等
优点:人类可以理解
0:几乎肯定消息不会改变
缺点:消息的长度可能会有所不同
3. 通过一个错误代码,并在文档中提供一个表格,程序员可以在其中找到错误代码的含义
优点:错误代码将是恒定的
优点:每个错误代码的长度可以相同
缺点:它是难以理解的
我认为第三种解决方案可能是一个好主意,因为xhrframework.php只能由已经查看过API文档的程序员访问。
开发人员应通过一个脚本(xhrframework.php)访问API并通过GET提交操作。他们在提交操作时可能会出现一些错误(未发送PHPSESSID,无效的PHPSESSID,移动无效,不是他们的回合等)。
因此,我考虑了如何显示错误的可能性。我想出了一些想法,告诉程序员他们犯了错误:
1. 通过清晰的英语错误消息
优点:清楚错误的意思
优点:可以添加有关如何修复此错误的信息
缺点:消息可能会因为我的英语不太好而改变
缺点:消息的长度差异很大-这对C程序员可能很重要
2. 通过英语错误消息常量-类似于WRONG_PHPSESSID,MISSING_PHPSESSID,INVALID_MOVE,NOT_YOUR_TURN等
优点:人类可以理解
0:几乎肯定消息不会改变
缺点:消息的长度可能会有所不同
3. 通过一个错误代码,并在文档中提供一个表格,程序员可以在其中找到错误代码的含义
优点:错误代码将是恒定的
优点:每个错误代码的长度可以相同
缺点:它是难以理解的
我认为第三种解决方案可能是一个好主意,因为xhrframework.php只能由已经查看过API文档的程序员访问。
现在我想知道是否存在Web-API错误消息的标准。其他人(例如Google Maps API)是如何解决这个问题的?我应该只输出带有内容“ERROR:004”或不带填充“ERROR:4”的空白页面吗?
哪些错误应该获得哪些编号?按其编号分组错误是否有意义,例如以1开头的所有错误都是身份验证错误,以2开头的所有错误都是游戏逻辑错误?以错误1开始并使用每个数字会更好吗?
谷歌地图API
如果我向Google Maps JS-API发出错误调用,它会返回一条具有清晰的德语消息(因为我住在德国,我猜测)的Java-Script。
如果我向Google Static Maps API发出错误调用,它将返回一条作为文本的英文消息。