10

swagger-codegenクライアント側の C# クラスを生成するために使用しています。それは仕事をしますが、カスタマイズしたいことがいくつかあります:

1) 最も重要なのは、使用する名前空間、またはおそらく基本名前空間をどのように指定するかです。現在、生成されたすべてのクラスにIO.Swagger.Model名前空間があります。これを変更するにはどうすればよいですか?

2) 生成されたすべてのモデルは I で始まります... ICustomer のように... クラス名が 2 つの大文字で始まり、最初の文字が I である場合、最初に I をオートストリップする方法はありますか?

3) 2 が実行できる場合、: を追加する方法はありますIWhateverか? したがって、 gen しようとしている場合は、次のICustomerことを確認したいと思います。

public class Customer : ICustomer

これはできますか?

4) 最後の質問では、次のコマンドラインを使用しています。

java -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService

問題は、これがパスに追加されることです: src\main\csharp\IO\Swagger

これをパスに追加しない方法はありますか?

5) 最後に、最も重要なこととして、4 つのフォルダー ( ApiClientModel、および ) が生成されPropertiesます。ClientおよびModelフォルダーのみを生成する方法はありますか?

4

2 に答える 2

16

チームからの応答を得てswagger-codegen、自分で試したことに基づいています。

1) 名前空間を修正するには、config.json基本的に次のようなファイルを作成する必要がありました。

{
  "packageName": "My.Namespace.Whatever"
}

今私の実行コマンドは

    java -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService 
     -c config.json

2)置き換えることはできませんが、先頭に追加することはできます...そのため、名前の付いたクラスを使用する代わりに、それがより理にかなっICustomerていると判断しました...そのため、上記のコマンドに追加しましたApiICustomer

--model-name-prefix Api

3)これが可能かどうか、またはどのように可能かはまだわかりません。

4)これがどのように機能するかを変更する新しい変更がパイプを下っているように見えます。https://github.com/swagger-api/swagger-codegen/issues/2837

5) ここの情報に基づいて: https://github.com/swagger-api/swagger-codegen#selective-generationjavaこのようにシステム プロパティを追加することで実行できますjava -Dwhateverproperty。したがって、#3の修正を含まない最終結果は次のとおりです。

java -Dmodels -DsupportingFiles -jar swagger-codegen-cli.jar generate 
     -i http://localhost:57772/MyService/swagger/v1/swagger.json 
     -l csharp -o C:/Code/AutoGenned/MyService 
     -c C:/Code/SwaggerCodeGen/config.json 
     --model-name-prefix Api
于 2016-05-12T17:41:01.793 に答える
13

1) については、設定ファイル ( -c config.json) を使用することに加えて、

オプションを直接使用することもできます。-DpackageName=My.Namespace.Whatever

于 2017-05-26T02:59:16.867 に答える