この記事では、Swagger と SpringBoot を統合する方法 (コード付き) を紹介します。一定の参考価値があります。必要な友人は参照してください。お役に立てれば幸いです。
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 クラスを記述します)
- value: URL のパス値
- tags:この値が設定されている場合、value の値は上書きされます
- description : API のリソースの説明
- basePath: 基本パスを設定する必要はありません
- 生成: 例: application/json、application/xml RequestMapping の対応する属性と同様
- consumes: 例: application/json、application/xml
- authorizations: 高度な機能認証時の設定
- hidden: ドキュメント内で非表示にするかどうか
- #@ApiOperation
(Controller メソッドで使用され、一連のリクエスト パラメーターを記述します)(Controller メソッドで使用され、メソッドの機能を説明します)
value:
@ApiImplicitParams- URL のパス値
tags:- この値が設定されている場合、value の値がオーバーライドされます
description:- API リソースの説明
basePath:- ベース パスは設定できない可能性があります
position :- 複数の API を構成し、配置を変更したい場合は、## を通じてこのプロパティを設定できます。 #response:
返されたオブジェクト- responseContainer:
これらのオブジェクトは有効な List、Set、Map ですが、その他は無効です- httpMethod:
リクエストメソッド- #code:
HTTP ステータス コード、デフォルト 200- extensions:
拡張属性
- (リクエストパラメータの記述)
value:
ApiImplicitParam 配列、を参照してください。次の注記@ApiImplicitParam
name:
パラメータ名(説明 一連の応答)
- value:パラメータ値
- defaultValue:パラメータのデフォルト値
- 必須:必須かどうか、デフォルトは false
- access:説明はあまりしません
- example:Example
- ##@ApiResponses
value: ApiResponse 配列。を参照してください。次のノート
- (応答の説明)
#@ApiResponseコード: HTTP ステータス コード
メッセージ:
- メッセージの説明
- 最後に、http://localhost:8080 と入力します。ブラウザで/swagger-ui.htmlにアクセスしてください!
以上がSpringBootとSwaggerを連携する方法の紹介(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。