当前位置: 首页 > 知识库问答 >
问题:

记录Swagger API合约中的错误代码定义

宗政和韵
2023-03-14

假设您在以下情况下工作:

>

  • 您已经将带有API留档的REST API模块生成到swagger-ui.html
  • endpoint的可能HTTP状态代码通过每个endpoint的控制器方法级别的io.swagger.annotations.*进行了很好的记录。
  • 在某些错误状态(4XX或5XX)的情况下,应用程序回复ErrorResseDTO,其结构如下

    "ErrorResponseDTO": {
      "type": "object",
      "properties": {
         "errorCode": {
           "type": "integer",
           "format": "int32"
         },
        "message": {
          "type": "string"
        }
      }
    }
    

    应用程序有数十个错误代码(在1-XX范围内,请将其视为传统定义,没有简单的方法更改它们)。

    现在,您正在寻找一种有效的方法,如何将这些应用程序错误代码记录到API合同中。

    将带有代码描述的错误代码列表包含到生成的swagger用户界面中的方法。html似乎是保持API文档最新的更好方法,而不是在一些自述文件中以降价格式附加静态和手写代码定义表。

    您对如何记录您的应用程序生成的各种代码有何建议?

    您是否遵循本主题中的一些特定良好实践?

    提前谢谢你。

  • 共有1个答案

    郎星汉
    2023-03-14

    同时,在一个小型内部开发团队中,通过频繁的API扩展,可以使用生成的swagger-用户界面,其中包含错误代码

      @Bean
      public Docket swaggerSettings() {
        ApiSelectorBuilder builder = new Docket(DocumentationType.SWAGGER_2)
          .apiInfo(
            new ApiInfoBuilder()
              .title("Response errorCodes table")
              .description(RestResponse.generateErrorsDocumentation().toString())
              .build()
          )
          ...
          .select();
    
        return builder.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
            .paths(PathSelectors.any())
            .build()
            .useDefaultResponseMessages(false);
      }
    
     类似资料:
    • 在 Python 社区有一些指导你格式化代码的约定。如果你使用 Python 进行了一段时间开发,那么你可能已经熟悉了这些约定。我会继续让事情简单些并且留下一些 URLs,如果以前你还没有碰过这些话题的话你能够在这里 URLs 中找到更多的信息。 让我们来个 PEP 动员! PEP 是“Python 增强倡议”,这些倡议是被索引以及托管在 python.org。在索引中,PEPs 被分成了几类,包

    • 问题内容: 尝试创建两个表时收到错误消息。有一个多值依赖项,因此我分离了表并提出了这个建议: 但是,当尝试使用此代码添加值时: 我收到臭名昭著的1452错误: 我不完全确定这意味着什么,因为我在第一个表中具有NameID自动递增功能。我不能在第二个中使用auto_increment,因为它是外键,对吗?在此先感谢您的帮助。 问题答案: 您已经在列上定义了外键约束,即在表中使用insert作为电话表

    • 问题内容: 有人知道Oracle在哪里可以找到描述Java代码约定的文档吗? 该URL不再可用,因此我为此主题创建了新问题。 http://www.oracle.com/technetwork/java/codeconv-138413.html 问题答案: 一种选择是使用Wayback机器,该机器似乎包含文档(这是pdf版本的直接链接)。但是,我也很想知道Oracle对它做了什么,他们是否打算摆脱

    • 我第一次做PHP编码。我得到了以下错误: 错误: 警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第9行的C:\xampp\htdocs\331002.php中给出 警告:mysqli\u real\u escape\u string()要求参数1为mysqli,布尔值在第10行的C:\xampp\htdocs\331002.php中给出

    • 伙计们,我正在努力解决在Windows环境中的Tomcat中打开我的自定义错误页面的问题。我得到了一些解决方案,但没有运气。我尝试了几乎所有的链接,但它不适合我。其中一些适用于在Tomcat中部署的其他解决方案,但不适用于我的Web服务 我的网络.xml < br >我正在从我的Servlet 3.0应用程序< code > response . send error(http Servlet r

    • 我在为Oracle SOA套件开发自定义log4j2记录器方面处于中间位置。类是一个胖的或自包含的罐子。它有一个log4j2.xml配置文件,其中有一个记录器和附加器 null 运行JUnit测试时,记录器会按预期写入jsonLogger.json文件。 在我的weblogic服务器上,我部署了log4j2.xml配置文件,并将Java属性log4j.configurationfile设置到log