coding-style - 是否存在错误/错误代码的标准?

标签 coding-style standards web-standards

我目前正在为国际象棋游戏编写 API/一些客户端。

开发人员应通过一个脚本 (xhrframework.php) 访问 API,并通过 GET 提交操作。他们在提交操作时可能会犯一些错误(没有发送 PHPSESSID,没有有效的 PHPSESSID,移动无效,轮不到他们,...)。

所以我想到了如何显示错误的可能性。我想出了一些想法如何通知程序员,他犯了一个错误:

  • 通过清晰的英语错误消息
  • +:很清楚错误应该意味着什么
  • +:可以添加如何修复此错误的信息
  • -: 由于我的英语不是很好,消息可能会改变
  • -:消息的长度差别很大——这对 C 程序员来说可能很重要
  • 通过英语中的 ab 错误消息常量 - 类似于 WRONG_PHPSESSID、MISSING_PHPSESSID、INVALID_MOVE、NOT_YOUR_TURN、...
  • +:人类可以理解
  • 0:几乎可以肯定消息不会改变
  • -:消息的长度可能会有所不同
  • 通过文档中的一个表格的错误代码,程序员可以在其中找到错误代码的含义
  • +:错误代码将是常量
  • +:每个错误代码的长度可以相同
  • -: 很神秘

  • 我认为第三种解决方案可能是一个好主意,因为 xhrframework.php 只能由很可能已经看过 API 文档的程序员访问。

    现在我想知道是否存在 Web-API-Error 消息的标准。其他人(例如 Google Maps API)是如何解决这个问题的?我应该简单地输出内容为“错误:004”的空白页还是不填充“错误:4”?

    哪些错误应该得到哪些数字?按错误的数字对错误进行分组是否有意义,例如所有以 1 开头的错误都是认证错误,所有错误都带有两个游戏逻辑错误?从错误 1 ​​开始并使用每个数字会更好吗?

    谷歌地图 API

    如果我制作 wrong call到 Google Maps JS-API,它返回带有清晰德语消息的 Java-Script(我猜我住在德国)。

    如果我创建 wrong call,Google 静态 map API 会以清晰的英文文本形式返回消息。 .

    最佳答案

    大多数 API 服务遵循 HTTP 错误代码系统 RFC2817不同类型错误的错误代码范围:

    1xx: Informational - Request received, continuing process 
    2xx: Success - The action was successfully received, understood, and accepted 
    3xx: Redirection - Further action must be taken in order to complete the request 
    4xx: Client Error - The request contains bad syntax or cannot be fulfilled 
    5xx: Server Error - The server failed to fulfil an apparently valid request
    

    在 API 上下文中,您通常会使用 4xx 值来表示与请求验证有关的错误条件。 49x 通常用于安全错误条件。

    关于coding-style - 是否存在错误/错误代码的标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8067224/

    相关文章:

    c# - 使用Partial Classes来管理代码,好的解决方案?

    javascript - 要解包的意大利面条 JavaScript 代码

    实体签名的 HTTP header

    html - 语义,标准以及使用 “lang”属性作为标记中的源代码

    url - 我可以在 URL 中使用 '|' 吗?

    javascript - ESlint 强制将函数等的右括号与左括号放在同一列上

    algorithm - 如果在 IF 语句中有 return 或 throw 语句,可以不使用 ELSE 语句吗?

    用于复杂查询的 REST API

    javascript - 对象或数组的首选声明约定是什么 : const or let?

    c++ - 如何使 `short-circuit evaluation` 在 `fold expressions` 中也可用?