Swagger отображает «on» в «true» при генерации Java - PullRequest
1 голос
/ 08 января 2020

Я использую Swagger Codegen 3.0.8 для генерации Java файлов. Часть yaml spe c равна

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

Есть ли способ предотвратить это?

1 Ответ

3 голосов
/ 08 января 2020

Согласно этому тикету swagger-codegen / Issues / 2559 , это скорее функция формата YAML, которая кажется правильной:

Language Independent Scalar types:
    { ~, null }              : Null (no value).
    [ 1234, 0x4D2, 02333 ]   : [ Decimal int, Hexadecimal int, Octal int ]
    [ 1_230.15, 12.3015e+02 ]: [ Fixed float, Exponential float ]
    [ .inf, -.Inf, .NAN ]    : [ Infinity (float), Negative, Not a number ]
    <b>{ Y, true, Yes, ON  }    : Boolean true</b>
    { n, FALSE, No, off }    : Boolean false

https://yaml.org/refcard.html

Обходное решение заключается в том, чтобы заключить в кавычки значения в файле YAML.

...