Swagger codegen の使用エクスペリエンス、オープンソースのプラグイン変換、インターフェイス ドキュメントのリアルタイム生成

職場のシステム再構築に伴い、上司の依頼により一連のフレームワーク機能を整理・開発することになりました。

 

すべて古いコードなので、開発サイクル全体で多くの問題点がありますが、ここでそのうちの 2 つを解決しました。1 つは、フロントエンドとバックエンドの開発プロセスでのコミュニケーションと、ライフサイクル全体での口実ドキュメントの統合です。そのため、フレームワークの基礎として swagger codegen が選択され、修正された swagger codegen プラグインが使用されます。コードの自動生成を実現するための変換後口実文書生成プラグインを使用し、動的な言い訳文書の生成を実現します。

 

レビュー:

1. プロジェクト基本パッケージ内のエンティティを yaml ファイルで参照します。プラグイン変換後の pom 設定ファイル

外部参照は、importMappings と typeMappings の構成を通じて実現できます。

yaml で直接参照される

$ref: "#/definitions/Prop"

簡単に参照できるようにします。

<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.4.13-pactera</version>
    <executions>
        <execution>
            <id>spring-server</id>
            <phase>pre-clean</phase>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api/##
                    tet121.yaml,
                    tet122.yaml,
                    tet123.yaml
                </inputSpec>

                <language>spring</language>
                <output>${project.basedir}</output>
                <apiPackage>test.controller</apiPackage>
                <modelPackage>test.controller.dto</modelPackage>
                <!-- 非诚重要的配置,否则文件将要被覆盖 -->
                <skipOverwrite>false</skipOverwrite>
                <importMappings>
                    <importMapping>TestBean=test.json.TestBean
                    </importMapping>

                </importMappings>
                <typeMappings>
                    <typeMapping>TestBean=test.json.TestBean</typeMapping>
                </typeMappings>
                <generateSupportingFiles>false</generateSupportingFiles>
                <configOptions>
                    <dateLibrary>java8</dateLibrary>
                    <java8>true</java8>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>

2. yamlで継承を実装する方法

定義体の定義処理に識別子を追加することで実現でき、外部でエンティティを定義した後にプロジェクトを導入することが可能です。サブクラスは、定義された実装クラスをオーバーライドせずに簡単に使用することもできます。

Result:
  discriminator: "type"
  description: "统一的响应返回类型。"
  type: "object"

この2点が使いにくいと感じた点です。たくさんの情報を調べましたが、簡単には見つかりませんでした。プラグインの改造は簡単ではありませんが、よろしければ高評価をお願いします。

変換後、プラグインの github アドレスを追加して独自の Maven プライベート サーバーにデプロイし、チーム全体が使用できるようにします。

https://github.com/wang249639015/swagger-codegen.git

 

ご質問がある場合は、WeChat w249639015 を追加してください。

 

 

このプラグインを使用すると、エクスキューズ コード全体の生成を意識せずに行うことができます。特定のビジネス担当者は、自分のビジネス ロジックの実装にのみ注意を払う必要があります。興味がある場合は、生成中にプラグインの ftl 実装を変更することもできます。処理し、ダボを自動的に生成し、ソファなどを公開して達成します。

この投稿とプラグインによって作業効率が向上したと感じていただけましたら、さまざまなプラグインのカスタマイズにご協力いただけると幸いです。

あなたのサポートが私の原動力です (ワンクリックで PDF の言い訳文書、HTML の言い訳文書のチュートリアル、およびフォローアップを生成します。)

 

 

 

 

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/weixin_40669549/article/details/108125933