ホームページ  >  記事  >  Java  >  SpringBootとSwaggerを連携する方法の紹介(コード付き)

SpringBootとSwaggerを連携する方法の紹介(コード付き)

不言
不言転載
2019-03-21 10:11:013121ブラウズ

この記事では、Swagger と SpringBoot を統合する方法 (コード付き) を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てれば幸いです。

Swagger とは

  1. Swagger は、開発者が API をすばやく学習して試すために使用できるインタラクティブな API コンソールを生成できます
  2. Swagger は顧客を生成できます End SDK コードが使用されますさまざまなプラットフォームでの実装に対応
  3. #Swagger ファイルは、さまざまなプラットフォームのコード コメントから自動的に生成できます
  4. Swagger には強力なコミュニティがあります
依存関係のインポート

<!-- Swagger -->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.4.0</version>
</dependency>

構成の追加

swagger:
  title: 项目 API
  description: SpringBoot 集成 Swagger 项目 API
  version: 1.0
  terms-of-service-url: http://www.baidu.com/
  base-package: cn.anothertale.springbootshiro  # 这一项指定需要生成 API 的包,一般就是 Controller
  contact:
    name: taohan
    url: http://www.baidu.ccom/
    email: 1289747698@qq.com
Swagger 構成の作成

package cn.anothertale.springbootshiro.config.swagger;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * description: swagger 配置中心
 *
 * @author: taohan
 * @date: 2019年03月20日
 * @time: 16:52
 */
@Getter
@Setter
@Configuration
@EnableSwagger2
@ConditionalOnClass(EnableSwagger2.class)
@ConfigurationProperties(prefix = "swagger")
public class SwaggerConfig {

    /**
     * API 接口包路径
     */
    private String basePackage;

    /**
     * API 页面标题
     */
    private String title;

    /**
     * API 描述
     */
    private String description;

    /**
     * 服务条款地址
     */
    private String termsOfServiceUrl;

    /**
     * 版本号
     */
    private String version;

    /**
     * 联系人
     */
    private Contact contact;

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(title)
                .description(description)
                .termsOfServiceUrl(termsOfServiceUrl)
                .version(version)
                .contact(contact)
                .build();
    }
}
アノテーションによる API のマーク

Swagger は、デフォルトですべてのインターフェイスをスキャンし、構成されたパッケージに基づいて対応する API の説明とパラメーター情報を生成します。

一般的に使用されるアノテーションと対応する属性は次のとおりです:

  • @Api (コントローラー上でマークされた API クラスを記述します)

    1. value: URL のパス値
    2. tags:この値が設定されている場合、value の値は上書きされます
    3. description : API のリソースの説明
    4. basePath: 基本パスを設定する必要はありません
    5. 生成: 例: application/json、application/xml RequestMapping の対応する属性と同様
    6. consumes: 例: application/json、application/xml
    7. authorizations: 高度な機能認証時の設定
    8. hidden: ドキュメント内で非表示にするかどうか

  • #@ApiOperation

    (Controller メソッドで使用され、メソッドの機能を説明します)

      value:
    1. URL のパス値
    2. tags:
    3. この値が設定されている場合、value の値がオーバーライドされます
    4. description:
    5. API リソースの説明
    6. basePath:
    7. ベース パスは設定できない可能性があります
    8. position :
    9. 複数の API を構成し、配置を変更したい場合は、## を通じてこのプロパティを設定できます。 #response:
    10. 返されたオブジェクト
    11. responseContainer:
    12. これらのオブジェクトは有効な List、Set、Map ですが、その他は無効です
    13. httpMethod:
    14. リクエストメソッド
    15. #code:
    16. HTTP ステータス コード、デフォルト 200
    17. extensions:
    18. 拡張属性


    @ApiImplicitParams
  • (Controller メソッドで使用され、一連のリクエスト パラメーターを記述します)
  • value:

    ApiImplicitParam 配列、を参照してください。次の注記


    @ApiImplicitParam
  • (リクエストパラメータの記述)
  • name:

    パラメータ名
    1. value:パラメータ値
    2. defaultValue:パラメータのデフォルト値
    3. 必須:必須かどうか、デフォルトは false
    4. access:説明はあまりしません
    5. example:Example


    6. ##@ApiResponses
    (説明 一連の応答)
  • value: ApiResponse 配列。を参照してください。次のノート



    1. #@ApiResponse
    2. (応答の説明)
  • コード: HTTP ステータス コード

      メッセージ:
    1. メッセージの説明
    2. 最後に、http://localhost:8080 と入力します。ブラウザで/swagger-ui.htmlにアクセスしてください!

以上がSpringBootとSwaggerを連携する方法の紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。