在生成Java时将Swagger映射为“ on”到“ true”

问题描述 投票:1回答:1

我正在使用Swagger Codegen 3.0.8生成Java文件。 yaml规范的一部分是

PrepositionalPhrase:
  type: object
  required:
  - preposition
  - objects
  properties:
    preposition:
      description: The preposition
      type: string
      enum:
      - of
      - on
      - or

(为简洁起见,删除了更多的值)。生成的枚举是

  public enum PrepositionEnum {
    OF("of"),
    TRUE("true"),
    OR("or")
  }

出于某种原因,似乎on被映射到true。我可以看到这种情况发生在某些配置解析器中,其中“ on”在逻辑上表示“ true”,但不适用于代码生成。

我正在使用的命令行是

swagger-codegen generate            \
                -i api.yaml \
                -l java             \
                --api-package com.example \
                --artifact-version 1.2.0 \
                --artifact-id example \
                --group-id com.example \
                --model-package com.example.model

有什么方法可以防止这种情况发生?

swagger-codegen
1个回答
0
投票

根据此票证swagger-codegen/issues/2559,它是一种YAML格式的功能,似乎是正确的:

独立于语言的标量类型:{〜,​​null}:Null(无值)。[1234,0x4D2,02333]:[十进制整数,十六进制整数,八进制整数][1_230.15,12.3015e + 02]:[固定浮点数,指数浮点数][.inf,-.Inf,.NAN]:[无限(浮点),负数,不是数字]{Y,true,Yes,ON}:布尔值true{n,FALSE,否,关闭}:布尔值false

https://yaml.org/refcard.html

显然,解决方法是引用YAML文件中的值。

顺便说一下,您的YAML中有一个错别字:of应该是off(并且应该转换为false:)]

© www.soinside.com 2019 - 2024. All rights reserved.