ホームページ >Java >&#&チュートリアル >SpringBoot プロジェクトは Swagger と swagger-bootstrap-ui を統合します。共通のアノテーションは何ですか?
インターネット プロジェクトにおけるフロントエンドとバックエンドの分離の普及に伴い、フロントエンドとバックエンドが開発されています。担当者が異なるため、プロジェクトのコミュニケーションコストも増加し、それに応じて増加します。
Swagger2 は、主に WebAPI インターフェースの通信に反映され、時代の要求に応じて登場し、API インターフェースのドキュメントを動的に生成し、通信コストを削減し、効率的なプロジェクト開発を促進します。
SpringBoot での Swagger2 と swagger-bootstrap-ui の統合について説明しましょう
<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>
対応する変更を行うことができます
@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(); } }
http://127.0.0.1:10086/swagger-uiを開始します。 html
ステップ 2
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>
設定されていない場合、アクセスエラー.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/"); } }
Access http:/ / 127.0.0.1:10086/doc.html、swagger-ui.html と比較して、このドキュメントはより簡潔です。
swagger は、インターフェイス名、リクエスト メソッド、パラメーター、戻り情報などを含む、アノテーションを通じてインターフェイス ドキュメントを生成します。
1.1 @EnableSwagger2 Swagger を有効にする
構成クラスまたはスタートアップ クラスをアクティブにします
1.2 @EnableSwaggerBootstrapUI SwaggerBootstrapUi 拡張機能をオンにする
構成クラスまたはスタートアップ クラスに作用します 拡張機能を使用しない場合は、有効にする必要はありません。
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 応答構成
##// 单独配置
@ApiResponse(code = 400, message = "Invalid user supplied")
// 组合使用
@ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
2.7
@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 サイトの他の関連記事を参照してください。