Rumah > Java > javaTutorial > 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
Lepaskan: 2023-05-24 12:22:13
ke hadapan
2017 orang telah melayarinya

    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>
    Salin selepas log masuk

    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();
        }
    }
    Salin selepas log masuk

    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>
    Salin selepas log masuk

    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/");
        }
    
    }
    Salin selepas log masuk

    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/");
        }
    }
    Salin selepas log masuk

    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/");
        }
    }
    Salin selepas log masuk

    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 = {"保险公司列表查询"})
    Salin selepas log masuk

    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")
      Salin selepas log masuk
    • 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)
      Salin selepas log masuk
    • 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!

    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan