web-dev-qa-db-ja.com

既存のSpring REST AP​​IからOpenAPI 3.0 YAMLファイルを生成する方法?

私は既存のSpring REST APIを持っています。

現在のところ、SpringFoxはYAML生成をサポートしていません。 Swagger 2.0(Open API 3.0 SPECに続く)でJSONを生成します。

また、 https://github.com/openapi-tools/swagger-maven-plugin は、Spring Restをサポートしていないようです。

私はyamlファイルを生成することができるがSwagger 2.0の定義を持つKongchen Spring-Maven-Pluginを試しました。

swagger: "2.0"
info:
  description: "Test rest project"
  version: "1.0"
  title: "Some desc"
  termsOfService: "http://swagger.io/terms/"
  contact:
    name: "Rest Support"
    url: "http://www.swagger.io/support"
    email: "[email protected]"
  license:
    name: "Apache 2.0"
    url: "http://www.Apache.org/licenses/LICENSE-2.0.html"
Host: "example.com"
basePath: "/api/"

だから私の質問は、次のようなオープンAPI YAMLファイルを生成する方法です。

openapi: 3.0.0
info:
  description: Some desc
  version: "1.0"
  title: Test rest project
  termsOfService: http://swagger.io/terms/
  contact:
    name: Rest Support
    url: http://www.swagger.io/support
    email: [email protected]
  license:
    name: Apache 2.0
    url: http://www.Apache.org/licenses/LICENSE-2.0.html

私は現在swagger-maven-pluginを使用してSwagger 2.0の定義を持つYAMLファイルを生成し、swagger2openapi at https://mermade.org.uk/openapi-converter を使用してAPI 3.0定義を開くために変換しています。

質問1:
[。_______CODE_io.swagger.v3.oas.annotationsがyamlを生成することができますか?

質問2:
[。] Spring MVCプロジェクトでOpen API定義を使用してYAMLを生成する最善の方法は何ですか?

質問3:
[。] io.swagger.v3.oasは春のプロジェクトで使用することも、JAX-RSプロジェクトだけでも使用できますか?

17
anonxss

私はより長い時間のためにいくつかのライブラリーが欠けていました。最後に、私自身の発電機を実装することにしました https://github.com/jrcodeza/spring-openapi あなたもそれをチェックアウトすることができます。それは反射に基づいており、JavaxとSpring Annotationsをサポートしています。それはまた、ジャクソン注釈に基づいて継承モデル(弁別器付き)を生成します。あなたが世代プロセスを変更したい場合はあなた自身のインターセプターを定義することができます(例えば、あなた自身の注釈があるとき、スキーマの生成されたセクションを調整する必要がある場合)。実行時モードまたはMavenプラグインとして使用できます。モデルを生成するJavaクライアントジェネレータへのOpenAPI3もあります。再度正しい継承のためにJavaxアノテーションとジャクソン注釈も生成します。

1
Jakub Remenec