7

残りのクライアントを生成するために swagger-codegen を使用していますが、問題が発生します。使用しているサービスは継承を持つモデルを返します。API モデルは次のようになります。

public class Person
{
    private List<Book> books;
    ...
}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "typeClass")
@JsonSubTypes({ @JsonSubTypes.Type(value = Magazine.class) })
public class Book 
{
    //some prop
}

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "typeClass")
public class Magazine extends Book
{
    //some prop
}

API モデルには、継承を処理するために jackson アノテーションが付けられています。API は正常に動作します。クライアントを生成するとき、クライアント モデルには jackson アノテーションがないため、生成されたクライアントを使用して API を使用すると、常に Book クラスを使用して逆シリアル化されます。Magazine クラスは「見えません」。生成されたモデルには、継承を処理するためのジャクソン注釈がないためだと思います。

モデルに jackson アノテーションを追加するように swagger-codegen を構成するにはどうすればよいですか。

どうもありがとう...

4

2 に答える 2