Swagger3.0の新しいバージョンによってもたらされた新しい変更

コミュニティによって推進され、Springfox3.0は昨年7月にリリースされました。最近、ついに新しいバージョンの新しい変更について友達とチャットする時間ができました。このバージョンアップは長い間待っていたと思われますが、結局、最後にリリースされたのは2年前のことです。

新しいバージョンのSwagger3.0によってもたらされた新しい変更新しいバージョンのSwagger3.0によってもたらされた新しい変更
コミュニティによって推進され、Springfox3.0は昨年7月にリリースされました。最近、ついに新しいバージョンの新しい変更について友達とチャットする時間ができました。このバージョンアップは長い間待っていたと思われますが、結局、最後にリリースされたのは2年前のことです。

新しいバージョンはまだたくさんの楽しみがあります、見てみましょう。

OpenAPIをサポートする

OpenAPIとは何ですか?

OpenAPI仕様は、実際には以前のSwagger仕様です。これは、REST APIの記述形式です。ドキュメントインターフェイスは、確立された仕様を通じて記述されます。これは、業界の真のAPIドキュメント標準であり、YAMLまたはJSONで記述できます。これには次のものが含まれます。

インターフェイス(/ users)と各インターフェイス操作(GET / users、POST / users)の
入力パラメータと応答内容
認証方法
必要な連絡先情報、ライセンスなど。
OpenAPIの詳細については、興味のある友人がGitHubで表示できます:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md

頼る

過去にバージョン2.9.2を使用した場合、一般的に言えば、次の2つの依存関係を追加する必要があります。

<dependency> 
    <groupId> io.springfox </ groupId> 
    <artifactId> springfox-swagger2 </ artifactId> 
    <version> 2.9.2 </ version> 
</ dependency> 
<dependency> 
    <groupId> io.springfox </ groupId> 
    <artifactId> springfox-swagger-ui </ artifactId> 
    <version> 2.9.2 </ version> 
</ dependency>

これら2つのうち、1つはインターフェイスドキュメント(JSONデータ)の生成に使用され、もう1つはJSONの視覚化に使用されます。

バージョン3.0では、それほど面倒である必要はありません。初心者がそれを行うことができます。

<dependency> 
    <groupid> io.springfox </ groupid> 
    <artifactid> springfox-boot-starter </ artifactid> 
    <version> 3.0.0 </ version> 
</ dependency>

Spring Bootの他のスターターと同様に、springfox-boot-starterはゼロ構成と自動構成サポートに依存しています。つまり、他に特別な要件がない場合は、依存関係を追加するだけで、インターフェイスのドキュメントが自動的に生成されます。

インターフェイスアドレス

3.0のインターフェースアドレスも以前とは異なります。2.9.2では、主に2つのアドレスにアクセスしました。

ドキュメントインターフェイスアドレス:http:// localhost:8080 / v2 / api-docs
ドキュメントページアドレス:http:// localhost:8080 / swagger-ui.html
3.0では、次の2つのアドレスも変更されています。

ドキュメントインターフェイスアドレス:http:// localhost:8080 / v3 / api-docs
ドキュメントページアドレス:http:// localhost:8080 / swagger-ui / index.html
特にドキュメントページアドレス(3.0を使用している場合)は、次のWebサイトにアクセスしてください。前のページは404を報告します。

古いアノテーションは引き続き使用できますが、3.0では他のいくつかのアノテーションも提供されています。

たとえば、以前のバージョンでは@ EnableSwagger2の代わりに@EnableOpenApiを使用できます。

そう言われていますが、実際の経験では、SongGeは@EnableOpenApiアノテーションの機能が明らかではないと感じています。追加してもしなくてもかまいません。ソースコードを裏返すと、@ EnableOpenApiアノテーションの主な機能は、次のようにOpenApiDocumentationConfiguration構成クラスをインポートすることです。

@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
@Target(value = {java.lang.annotation.ElementType.TYPE})
@ 
Documented @Import(OpenApiDocumentationConfiguration.class)
public @interface EnableOpenApi { 
}

次に、自動化構成クラスOpenApiAutoConfigurationを次のように調べました。

@Configuration 
@EnableConfigurationProperties(SpringfoxConfigurationProperties.class)
@ConditionalOnProperty(value = "springfox.documentation.enabled"、havingValue = "true"、matchIfMissing = true)
@Import({ 
    OpenApiDocumentationConfiguration.class、
    SpringDataRestConfiguration.class、
    BeanValidatorPluginsConfiguration.class、
    Swagger2DocumentationConfiguration。 class、
    SwaggerUiWebFluxConfiguration.class、
    SwaggerUiWebMvcConfiguration.class 
})
@ AutoConfigureAfter({WebMvcAutoConfiguration.class、JacksonAutoConfiguration.class、
    HttpMessageConvertersAutoConfiguration.class、RepositoryRestMvcAutoConfiguration.class}) 
public class OpenApiAutoConfiguration { 
 
}

ご覧のとおり、OpenApiDocumentationConfigurationも自動化構成クラスにインポートされます。

したがって、通常の状況では、実際には@EnableOpenApiアノテーションを追加する必要はありません。

OpenApiAutoConfigurationの@ConditionalOnProperty条件付きアノテーションの定義によると、application.propertiesでspringfox.documentation.enabled = falseが設定されている場合、swagger関数がオフになっていることがわかりました。このとき、自動構成クラスは実行されません。 。@ EnableOpenApiアノテーションは、OpenApiDocumentationConfiguration構成クラスをインポートします。技術的に言えば、ロジックはこのようなものですが、そのような要件はまだアプリケーションで見つかりません(つまり、application.propertiesでswaggerをオフにしてから、@ EnableOpenApiアノテーションを介してオンにします)。

おすすめ

転載: blog.csdn.net/yaxuan88521/article/details/113857577