SpringBoot プロジェクトは Swagger と swagger-bootstrap-ui を統合します。共通のアノテーションは何ですか?

WBOY
リリース: 2023-05-24 12:22:13
転載
1861 人が閲覧しました

    1. はじめに

    インターネット プロジェクトにおけるフロントエンドとバックエンドの分離の普及に伴い、フロントエンドとバックエンドが開発されています。担当者が異なるため、プロジェクトのコミュニケーションコストも増加し、それに応じて増加します。

    Swagger2 は、主に WebAPI インターフェースの通信に反映され、時代の要求に応じて登場し、API インターフェースのドキュメントを動的に生成し、通信コストを削減し、効率的なプロジェクト開発を促進します。

    SpringBoot での Swagger2 と swagger-bootstrap-ui の統合について説明しましょう

    2. SpringBoot プロジェクトと swagger の統合

    1. 依存関係の導入

            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>
    ログイン後にコピー

    2 . 設定ファイルを書き込みます

    対応する変更を行うことができます

    @Configuration
    @EnableSwagger2
    @EnableSwaggerBootstrapUI
    @Profile({"dev","test"})
    public class Swagger2Config {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .groupName("") //指定分组,对应(/v2/api-docs?group=)
                    .pathMapping("") //base地址,最终会拼接Controller中的地址
                    .apiInfo(apiInfo())
                    .select()
                    //为当前包路径
    				// .apis(RequestHandlerSelectors.any())
                    .apis(RequestHandlerSelectors.basePackage("com.riskeys.sd.custom"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        //构建 api文档的详细信息函数
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    //页面标题
                    .title("XXX API对接文档")
                    .description("XX API对接文档") //描述
                    //创建人
                    .contact(new Contact("yuhei001", "https://blog.csdn.net/Yuhei0", "18616591658@163.com"))
                    //版本号
                    .version("1.0")
                    //描述
                    .description("API 描述")
                    .build();
        }
    }
    ログイン後にコピー

    3. アクセス ページ

    http://127.0.0.1:10086/swagger-uiを開始します。 html

    SpringBoot プロジェクトは Swagger と swagger-bootstrap-ui を統合します。共通のアノテーションは何ですか?

    3. SpringBoot プロジェクトの統合 swagger-bootstrap-ui

    ステップ 2

    1.依存関係の導入に基づいて次の操作を実行します。

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>swagger-bootstrap-ui</artifactId>
                <version>1.9.6</version>
            </dependency>
    ログイン後にコピー

    2. リソース処理ルールを設定します

    設定されていない場合、アクセスエラー.9996 が報告される場合があります。

    WebMvcConfigurer インターフェイスまたは WebMvcConfigurationSupport (SpringBoot の古いバージョン) を実装し、addResourceHandlers メソッドを実装して、次のコードを追加します。

    @Configuration
    public class AppWebConfig extends WebMvcConfigurationSupport{
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            // 解决 doc.html 404 报错
            registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    
    }
    ログイン後にコピー

    or

    @Configuration
    public class AppWebConfig extends WebMvcConfigurationSupport{
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            // 解决 doc.html 404 报错
            registry.addResourceHandler("doc.html").addResourceLocations("classpath*:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath*:/META-INF/resources/webjars/");
        }
    }
    ログイン後にコピー

    さらに、スタートアップ クラスで書き換えを実装することもできます

    @SpringBootApplication
    public class XXXApplication  implements WebMvcConfigurer{
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("doc.html").addResourceLocations("classpath*:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath*:/META-INF/resources/webjars/");
        }
    }
    ログイン後にコピー

    3. アクセス ページを開始します

    Access http:/ / 127.0.0.1:10086/doc.html、swagger-ui.html と比較して、このドキュメントはより簡潔です。

    SpringBoot プロジェクトは Swagger と swagger-bootstrap-ui を統合します。共通のアノテーションは何ですか?

    4. Swagger の共通アノテーションの概要

    swagger は、インターフェイス名、リクエスト メソッド、パラメーター、戻り情報などを含む、アノテーションを通じてインターフェイス ドキュメントを生成します。

    1. Swagger2Config の関連する Swagger アノテーション

    1.1 @EnableSwagger2 Swagger を有効にする

    構成クラスまたはスタートアップ クラスをアクティブにします

    1.2 @EnableSwaggerBootstrapUI SwaggerBootstrapUi 拡張機能をオンにする

    構成クラスまたはスタートアップ クラスに作用します 拡張機能を使用しない場合は、有効にする必要はありません。

    2. コントローラーの関連する swagger アノテーション

    2.1 @Api: クラス全体を変更し、コントローラーの役割を説明します

    値とタグは説明です値の代わりにタグを使用できます

    @Api(value = "保险公司列表查询", tags = {"保险公司列表查询"})
    ログイン後にコピー

    2.2 @ApiOperation() はメソッドに使用され、http リクエストの操作を表します

    @ApiOperation(value = "信息员保存(注册)/更新", tags = {"信息員保存"}, notes = "messenger desc")
    ログイン後にコピー

    2.3 @ ApiParam が使用されます メソッド、パラメータ、フィールドの説明。パラメータに追加されたメタデータ (説明や必須かどうかなど) を示します。

    単一のパラメータに適用されます

    @ApiParam(name="sdMessengerInfo",value="参数描述",required=true)
    ログイン後にコピー

    2.4リクエスト パラメーター アノテーション。組み合わせ可能です。

    • @ApiImplicitParams はメソッドに使用され、複数の @ApiImplicitParam

    • # が含まれます。 ##@ApiImplicitParam はメソッドに使用され、個別のリクエスト パラメーターを表します

    複数のパラメーターの記述に適しています

    例:

    // 组合使用
    @ApiImplicitParams ({
        @ApiImplicitParam(name = "id", value = "参数中文描述", required = true)
    })
    // 单独使用
    @ApiImplicitParam(paramType="query", name="id", dataType="String", required=true, value="参数描述")
    ログイン後にコピー

    @ApiParam と @ApiImplicitParam が同時に存在する場合、 @ApiImplicitParam の記述が優先されます。

    2.5

    @ApiIgnore() クラスまたはメソッドで使用され、swagger によってページに表示される必要がなく、めったに使用されません。 #2.6 応答構成

    • #@ApiResponses

    • ##@ApiResponse
    • ##

      // 单独配置
      @ApiResponse(code = 400, message = "Invalid user supplied")
      // 组合使用
      @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
      ログイン後にコピー
      2.7

      @ResponseHeader
    • レスポンス ヘッダー設定
    @ResponseHeader(name="head1",description="response head conf")
    ログイン後にコピー

    3. Model の関連する Swagger アノテーション3.1

    @ApiModel

    クラスに使用されます。エンティティ クラスを使用してパラメーターを受け取るために使用されるクラスの説明を示します。

    @ApiModel(value = "demo", description = "对象描述")
    ログイン後にコピー

    通常、値と説明は省略できます3.2

    @ApiModelProperty

    メソッドとフィールドに使用され、モデル属性またはデータ操作の変更の説明を示します

    @ApiModelProperty(value = "用户id",name = "openid2",dataType = "String", required = true, hidden = true)
    ログイン後にコピー

    value
      –フィールドの説明
    • ##name

      –属性名を書き換えます
    • dataType

      –属性タイプのオーバーライド
    • ##必須–必須かどうか

    • example–Example

    • hidden–Hide

    • # #通常、値と必須のみマークが付いています。

    以上がSpringBoot プロジェクトは Swagger と swagger-bootstrap-ui を統合します。共通のアノテーションは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    ソース:yisu.com
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!