Openapi Code Generatorで日本語表記のenum値を採用する場合


これはなんですか

Java でOpenapi specを使ってコントローラーのインターフェースやクライアントを書いている人たちで、enumの値を日本語にしたいときどうしたらいいかというお話。

ほうほう

例えばこんなかんじで、stringなvalueをenumとして扱う場合

  PetType:
    type: string
    enum:
      - 猫
      - 犬

そのままだ下記のようなとエラーになります。

[ERROR] Request.java:[77,5] リリース9から'_'はキーワードなので識別子として使用することはできません

生成されるソースコード

  public enum PetTypeEnum {
    _("猫"),

    _("犬");

じゃあどうしようか

こうしましょう

これが

  PetType:
    type: string
    enum:
      - 猫
      - 犬
    x-enum-varnames:
      - Cat
      - Dog

こう!

  public enum PetTypeEnum {
    Cat("猫"),

    Dog("犬");

この先はかすれていて読めない。

参考