Swagger codegenを使用してREST クライアント API を生成しています。次のような口ひげファイルを使用するサポート クラスがあります。
package {{package}};
import {{apiPackage}}.*;
public class MyClient {
private final String basePath, token;
{{#apis}}
private {{className}} i{{className}};
{{/apis}}
public MyClient(String basePath, String token){
this.basePath = basePath;
this.token = token;
}
{{#apis}}
{{className}} get{{className}}(){
if(i{{className}}==null) i{{className}} = new {{className}}(basePath, token);
return i{{className}};
}
{{/apis}}
}
生成されたクラスは次のようになります。
パッケージ com.mypackage.client;
com.mypackage.client.api.* をインポートします。
public class MyClient {
private final String basePath, token;
private AdminApi iAdminApi;
private AppApi iAppApi;
public MyClient(String basePath, String token){
this.basePath = basePath;
this.token = token;
}
AdminApi getAdminApi(){
if(iAdminApi==null) iAdminApi = new AdminApi(basePath, token);
return iAdminApi;
}
AppApi getAppApi(){
if(iAppApi==null) iAppApi = new AppApi(basePath, token);
return iAppApi;
}
}
これは明らかに醜いです。生成された残りのコードは問題ないように見えますが、なぜこの 1 つのクラスがお粗末なのかわかりません。私が間違っている口ひげファイルに何かありますか?