私は swagger-spring-mvc 0.9.5 を使用しており、応答データに次のようなフィールドがあります。
@ApiModelProperty("Some description")
private List<Account> accounts;
質問の短いバージョン:この注釈付きの Java から、swagger-codegen 経由でたとえば Objective C にアクセスするにはどうすればよいですか?
それによって生成されるswagger JSONは次のとおりです。
accounts: {
description: "Some description",
items: {
type: "Account"
},
required: false,
type: "List"
}
私の同僚はこれを swagger-codegen に入力して Objective C クラスを生成していますが、コンパイルできないコードを生成しています。
@property (nonatomic, strong) NSArray<Optional, NSArray> *accounts;
NSArray
(内< >
)はプロトコルではないためです。
swagger テンプレート ファイル (mustache) は、各モデルのプロトコルを作成します。そのプロトコルが配列で指定されると、リスト/配列内のデータから正しいモデルを生成するために JSONModel によって取得されます。したがって、この場合、期待される出力は
@property (nonatomic, strong) NSArray<Optional, MAAccount> *accounts;
これにより、NSArray
ofが作成されますMAAccount
(Account
はオブジェクト タイプでありMA
、swagger が既に持っているプレフィックスです)。
Swagger JSON を手動で編集して変更List
するとarray
(さまざまな同様のケースで提案されているように)、出力は正しいですが、この手動の手順は避けたいと考えています。
だから私は使用するswagger-spring-mvcを取得しようとしました"array"
:
@ApiModelProperty(value = "Some description", dataType = "array")
private List<Account> accounts;
しかし、その後、dataType
swagger-spring-mvc 0.9.5 で無視されることが発見され、見た目から、完全修飾 Java クラス名でない限り、springfox 2.0 では無視されます。
swagger-spring-mvc/springfox を使用する"array"
か、他の手段でこれを達成する方法はありますか?