2017-12-19 26 views
0

春にswagger code-genを使用してswagger.yamlファイルからコードを生成しました。Swagger code-genによって生成された更新コード

私のAPI用にswagger.yamlファイルを更新し、いくつかのHTTP操作を追加しました。

手動でマージすることなく以前に自動的に生成された既存のコードを更新することは可能ですか?

答えて

2

私はcodegenによって生成されたコントローラーについて話していると思います。それらは各世代の後に上書きされます。つまり、毎回変更を追加するコードを手動でマージする必要があります。は本当に迷惑なです。

私が見つけたベストワークフローは、interfaceOnlyオプションを使用してターゲットディレクトリにモデルクラスとインターフェイスクラスのみを生成し、それらのインターフェイスを実装するコントローラを手動で作成することでした。

API仕様ファイルをもう1つのGET操作で更新すると、インターフェイスはその新しい操作で再生成され、コントローラを調整してその新しいメソッドを実装するだけで済みます(最新のIDEではすばやく簡単です)。他のすべては同じままで、コードをもっと細かく制御できます(異なるフォルダのコントローラを分割するなど...)。ここで

は私がプラグインの使用configです:

<plugin> 
<groupId>io.swagger</groupId> 
<artifactId>swagger-codegen-maven-plugin</artifactId> 
<version>2.2.3</version> 
<executions> 
    <execution> 
     <goals> 
      <goal>generate</goal> 
     </goals> 
     <configuration> 
      <inputSpec>./api-contract/petstore.yml</inputSpec> 
      <language>spring</language> 
      <configOptions> 
       <sourceFolder>swagger</sourceFolder> 
       <java8>true</java8> 
       <interfaceOnly>true</interfaceOnly> 
      </configOptions> 
     </configuration> 
    </execution> 
</executions> 

あなたが闊歩-codegenを-のmaven-pluginのhereで春のブートを使用して、完全なサンプルプロジェクトを確認することができます。

乾杯

関連する問題