Rumah  >  Artikel  >  Java  >  Projek SpringBoot mengintegrasikan Swagger dan swagger-bootstrap-ui dan apakah anotasi biasa?

Projek SpringBoot mengintegrasikan Swagger dan swagger-bootstrap-ui dan apakah anotasi biasa?

WBOY
WBOYke hadapan
2023-05-24 12:22:131924semak imbas

    1 Pengenalan

    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

    2. Swagger integrasi projek SpringBoot

    1 2 . Tulis fail konfigurasi

    dan buat pengubahsuaian yang sepadan

            <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

    http://127.0.0.1:10086/swagger-ui.html.

    Projek SpringBoot mengintegrasikan Swagger dan swagger-bootstrap-ui dan apakah anotasi biasa?3 Penyepaduan projek SpringBoot swagger-bootstrap-ui

    Lakukan operasi berikut berdasarkan langkah 2

    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 sumber

    Jika 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 Projek SpringBoot mengintegrasikan Swagger dan swagger-bootstrap-ui dan apakah anotasi biasa?

    Swagger menjana dokumen antara muka melalui anotasi, termasuk nama antara muka, kaedah permintaan, parameter, maklumat pemulangan, dsb.

    1. Anotasi swagger berkaitan dalam Swagger2Config

    1.1

    @EnableSwagger2

    Dayakan Swagger

    untuk bertindak pada kelas konfigurasi atau kelas permulaan

    1.2

    @EnableSwaggerBootstrapUI

    Hidupkan fungsi SwaggerBootstrapUi yang dipertingkatkan

    Bertindak 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.1

    @Api

    : Ubah suai keseluruhan kelas dan huraikan peranan Pengawal

    Kedua-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; @ApiParam

    untuk 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

    @ApiImplicitParams

    digunakan untuk kaedah dan mengandungi berbilang @ApiImplicitParams Mewakili parameter permintaan yang berasingan

    • sesuai untuk menerangkan berbilang parameter Contoh:

      @ApiOperation(value = "信息员保存(注册)/更新", tags = {"信息員保存"}, notes = "messenger desc")
    • Ambil perhatian bahawa apabila @ApiParam dan @ApiImplicitParam wujud pada masa yang sama Apabila, perihalan @ApiImplicitParam akan diguna pakai.
    • 2.5 @ApiIgnore() digunakan untuk kelas atau kaedah dan tidak perlu dipaparkan pada halaman dengan sombong, jadi ia kurang biasa digunakan.

    • 2.6 Konfigurasi Respons

    @ApiResponses

    @ApiResponse

    digunakan untuk kelas; ia mewakili penerangan kelas dan digunakan untuk menerima parameter menggunakan kelas entiti.

      @ApiParam(name="sdMessengerInfo",value="参数描述",required=true)
    • Secara amnya, nilai dan desc boleh diabaikan

      3.2 @ApiModelProperty

      Digunakan untuk kaedah dan medan; menunjukkan perihalan atribut model atau perubahan operasi data
    • rreee
    • –Perihalan medan

    –Tulis semula nama atribut

    –Tulis semula jenis atribut

    – Adakah ia diperlukan?

      –Contoh
    • value

    • –Sembunyikan
    • name

      Secara umumnya hanya nilai dan keperluan ditanda.

    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!

    Kenyataan:
    Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam