要设计些Restful API,试图看看业界对错误返回有没有标准。看了几个:
https://developers.douban.com/wiki/?title=api_v2
https://github.com/FanfouAPI/FanFouAPIDoc/wiki
https://developer.github.com/v3/
http://open.weibo.com/wiki/API%E6%96%87%E6%A1%A3_V2
https://dev.twitter.com/rest/public/search
douban
{
"msg":"uri_not_found",
"code":1001,
"request":"GET \/v2\/photo\/132"
}
fanfou
{
"request":"/account/show.json",
"error":"参数错误"
}
{"error":"Sorry, your query is too complex. Please reduce complexity and try again."}
github
{
"message": "Bad credentials",
"documentation_url": "https://developer.github.com/v3"
}
{
"request" : "/statuses/home_timeline.json",
"error_code" : "20502",
"error" : "Need you follow uid."
}
结论:没有统一标准。大家随便玩儿吧。
大多数使用了error表示错误信息,有的用error_code表示错误编号。error_code这个东西,某些程度上可以帮助多语言化。但是也会使得api很累赘,而且……编号也很麻烦,编了号还得查表。直接用英文的error信息是比较方便的。多语言时就翻译一下。
这样说来。我选择twitter的表达方式。