Dengan populariti pemisahan bahagian hadapan dan belakang bagi projek Internet, bahagian hadapan dan bahagian belakang dibangunkan. oleh kakitangan yang berbeza, dan kos komunikasi projek juga meningkat dengan sewajarnya.
Terutama dicerminkan dalam komunikasi antara muka WebAPI, Swagger2 wujud secara dinamik, ia boleh menjana dokumen antara muka Api, mengurangkan kos komunikasi dan menggalakkan pembangunan projek yang cekap.
Perkara berikut membincangkan integrasi Swagger2 dan swagger-bootstrap-ui pada SpringBoot
<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>
3 Mulakan halaman akses
3 Penyepaduan projek SpringBoot swagger-bootstrap-ui
1 🎜>
@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(); } }2. Konfigurasikan peraturan pemprosesan sumberJika ia tidak dikonfigurasikan, ralat akses.9996 mungkin dilaporkan. Laksanakan antara muka WebMvcConfigurer atau WebMvcConfigurationSupport (versi lama SpringBoot), laksanakan kaedah addResourceHandlers dan tambah kod berikut.
<dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.6</version> </dependency>atau
@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/"); } }Selain itu, anda juga boleh melaksanakan penulisan semula pada kelas permulaan
@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/"); } }3. Mulakan halaman akses Lawati http:/ / 127.0.0.1:10086/doc.html, berbanding swagger-ui.html, dokumen ini lebih bersih.
4. Pengenalan kepada anotasi biasa dalam Swagger
Swagger menjana dokumen antara muka melalui anotasi, termasuk nama antara muka, kaedah permintaan, parameter, maklumat pemulangan, dsb. 1. Anotasi swagger berkaitan dalam Swagger2Config1.1untuk bertindak pada kelas konfigurasi atau kelas permulaan
1.2@EnableSwaggerBootstrapUI
Hidupkan fungsi SwaggerBootstrapUi yang dipertingkatkanBertindak pada kelas konfigurasi atau kelas permulaan Jika anda tidak menggunakan fungsi yang dipertingkatkan, anda tidak perlu mendayakannya.
2. Anotasi kesombongan yang berkaitan dalam pengawal 2.1Kedua-dua nilai dan tag ialah perihalan. Teg boleh digunakan dan bukannya nilai
@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/"); } }2.2
@ApiOperation()
untuk kaedah; @ApiParamuntuk Kaedah, parameter, perihalan medan; menunjukkan penambahan metadata pada parameter (huraian atau sama ada ia diperlukan, dsb.) Berlaku pada satu parameter
@Api(value = "保险公司列表查询", tags = {"保险公司列表查询"})
2.4 Anotasi parameter permintaan, yang boleh digabungkan
@ApiImplicitParamsdigunakan untuk kaedah dan mengandungi berbilang @ApiImplicitParams Mewakili parameter permintaan yang berasingan
sesuai untuk menerangkan berbilang parameter Contoh:
@ApiOperation(value = "信息员保存(注册)/更新", tags = {"信息員保存"}, notes = "messenger desc")
2.5 @ApiIgnore() digunakan untuk kelas atau kaedah dan tidak perlu dipaparkan pada halaman dengan sombong, jadi ia kurang biasa digunakan.
@ApiResponse
digunakan untuk kelas; ia mewakili penerangan kelas dan digunakan untuk menerima parameter menggunakan kelas entiti.
@ApiParam(name="sdMessengerInfo",value="参数描述",required=true)
3.2 @ApiModelProperty
Digunakan untuk kaedah dan medan; menunjukkan perihalan atribut model atau perubahan operasi data–Perihalan medan
–Tulis semula nama atribut
–Tulis semula jenis atribut
– Adakah ia diperlukan?
value
name
Atas ialah kandungan terperinci Projek SpringBoot mengintegrasikan Swagger dan swagger-bootstrap-ui dan apakah anotasi biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!