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

招摇过市:第一个枚举值覆盖类型

海保臣
2023-03-14

我正在使用swagger doc为我的应用程序生成API。doc是用yml编写的,在某些地方它将定义一些枚举道具(我们使用mysql)。这看起来像:

properties:
      type:
        enum:
          - "first"
          - "second"
          - "example"
        type: "string"
      title:
        type: "string"
    ... // And so on and on

我希望得到这样的东西:

{
  "type": "string",
  "title": "string",
}

正如您所看到的,类型字段将是一个在配置文件中定义的字符串,但我收到的是这个字符串:

{
  "type": "first",
  "title": "string",
}

Swagger将第一个值设置为数据类型,这是绝对错误的。所以问题是如何为“type”字段获取值“string”。

共有1个答案

公羊安怡
2023-03-14

我一直在写我的昂首阔步留档在JSON。下面是我如何设置“枚举”的一个例子。也许你可以把它翻译成YML来得到一个更好的主意。

"parameters":[
           {
              "name":"userID",
              "in":"path",
              "description":"TO BE DETERMINED.",
              "required":true,
              "type":"string"
           },
           {
              "name":"embedded",
              "in":"query",
              "description":"TO BE DETERMINED",
              "required":false,
              "type":"array",
              "items":{
                 "enum":[
                    "address",
                    "state"
                 ]
              },
              "collectionFormat":"csv"
           }

如果你看项目,你会发现我没有使用类型,它工作得很好。

 类似资料:
  • 我正在编写一个OpenAPI(Swagger)定义,其中一个查询参数可以取无,或N个值,如下所示: 如何在OpenAPI YAML中编写此内容? 我尝试了以下方法,但没有产生预期的结果:

  • 我试图在我的微服务项目中生成一个单独的招摇过市,在Api网关中将所有服务招摇过市聚合成一个单独的招摇过市。为了实现这一点,我将遵循下一个教程https://objectpartners.com/2017/09/28/aggregate-services-into-a-single-swagger 这里的问题是,当我尝试设置绝对URL时,我收到的输出是未能加载API定义。未定义的http://loc

  • 给定一个Spring Boot项目,该项目使用springdoc-openapi库公开一个OpenAPI(Swagger)endpoint,该endpoint记录了项目的Spring MVC控制器endpoint。 项目中的一个枚举使用Jackson在字段上提供的JsonValue来更改枚举的JSON表示形式。使用Lombok项目的getter注释将此枚举字段公开为getter: 然而,尽管Jac

  • 我正在使用Swagger注释和SpringFox为我的REST API(使用Sprint Boot构建)生成Swagger规范。我正在用将返回的代码注释每个方法。例如: 然而,有些东西(我假设SpringFox)正在向每个API调用添加一个200响应代码,而不管它是否已定义。我知道我可以通过在每个方法中添加注释来删除此项,但a)这似乎是@ApiResponse定义的不必要重复,b)某些方法可能返回

  • 枚举具有名为'hash value'的属性,该属性是枚举内的索引。

  • 我的pom.xml 招摇过市配置 服务器日志 它说映射: 但这些都不起作用(404): 如果我使用sping-fox较低版本,那么我将在我的日志中得到它已映射{[/v2/api-docs}],方法=[GET]。但是,我看不到在那里生成的任何json。