Rumah  >  Artikel  >  Java  >  Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

WBOY
WBOYke hadapan
2023-05-17 09:40:381037semak imbas

    1. Ketergantungan koordinat Import Swagger

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    rrree

    Versi yang paling biasa digunakan ialah 2.9.2

    2 kelas permulaan @ EnableSwagger2

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Anotasi @EnableSwagger2 yang disediakan oleh springfox boleh mendayakan teknologi berkaitan swagger2. Program ini akan merentasi semua jenis dalam pakej dan sub-pakej kelas semasa untuk mencari anotasi yang berkaitan dengan Swagger dan menyesuaikan dokumen Swagger

    3. Mulakan projek dan lihat antara muka swaggerui.html

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Klik cuba untuk memasukkan parameter yang sepadan untuk melihat hasil yang dikembalikan

    Keempat, tulis fail konfigurasi SwaggerConfig

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${swagger.version}</version>
    </dependency>
    @EnableSwagger2
    @Configuration
    public class SwaggerConfig {
        @Autowired
        private ApplicationContext applicationContext;
    
        private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");
    
        @Bean
        public Docket createRestApi() {
            ServletContext servletContext = applicationContext.getBean(ServletContext.class);
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(Predicates.not(regex("/error.*")))
                    .build()
                    .apiInfo(apiInfo());
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("平台接口 v1.0")
                    .description("平台接口")
                    .contact(contact)
                    .version("1.0")
                    .build();
        }
    }

    Buat objek jenis Docker dan gunakan pengurusan bekas spring. Docker ialah objek konfigurasi global dalam Swagger

    Gunakan DocumentationType.SWAGGER_2 untuk menentukan objek kelas Docket untuk menentukan versi mana yang digunakan

    apiInfo(): Maklumat perihalan dokumen API, parameter ialah satu objek kelas ApiInfo, gunakan pembina bulid() untuk mencipta

    @Bean
        public Docket createRestApi() {
            ServletContext servletContext = applicationContext.getBean(ServletContext.class);
            return new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(Predicates.not(regex("/error.*")))
                    .build()
                    .apiInfo(apiInfo());
        }

    contact(): Konfigurasikan kandungan utama dokumen swagger, yang juga merupakan objek kelas kepada tiga parameter, Nama penerbit, alamat URL tapak web penerbit dokumen (tapak web korporat), alamat e-mel penerbit dokumen

    private ApiInfo apiInfo() {
           return new ApiInfoBuilder()
                   .title("平台接口 v1.0")
                   .description("平台接口")
                   .contact(contact)
                   .version("1.0")
                   .build();
       }

    title(): title description(): description information.version(): Maklumat versi

    sepadan dengan kandungan berikut

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Kaedah yang mengembalikan ApiSelectorBuilder ialah select(), yang digunakan untuk mendapatkan pemilih dalam Docker . Bina pemilih. Sebagai contoh, pakej apakah yang perlu diimbas untuk anotasi

    apis(): diikuti oleh peraturan (Predicate) di bawah kelas RequestHandlerSelectors, yang menetapkan anotasi pakej tersebut untuk diimbas secara lalai ialah anotasi di bawah kelas permulaan dan subpakejnya

    Terdapat beberapa kaedah statik di bawah kelas RequestHandlerSelectors (tiga contoh)

    basePackage(): Isikan alamat khusus nama pakej kemudian, dan anotasi pakej yang diubah suai dan sub-pakejnya akan diimbas

    private Contact contact = new Contact("NIUA","localhost:8080/swagger-ui.html", "1053288979@qq.com");

    any(): Jana dokumentasi API untuk mana-mana antara muka

    none(): Jangan jana dokumentasi antara muka untuk mana-mana antara muka

    path(): Gunakan ungkapan biasa, penjanaan kekangan Alamat laluan dokumen Api, diikuti dengan laluan yang ditapis (lulus)

    docker.apis(RequestHandlerSelectors.basePackage("com.xxx"))

    5: Swagger menyokong anotasi tersuai

    yang tidak dinyatakan di sini, anda boleh cari sendiri jika berminat (tinggalkan Lokasi, akan digunakan pada masa hadapan)

    Enam: Swagger2 common annotation

    @ Api (biasa digunakan)

    Fungsi : @Api ialah Nota kelas dihidupkan. Kawal kandungan maklumat antara muka yang dijana oleh seluruh kelas

    Atribut:

    tag: nama kelas. Jika terdapat berbilang nilai, yang bermaksud terdapat berbilang salinan (alias) tersedia, paparan SwaggerUI akan menunjukkan pengawal yang mempunyai akses kepada menu yang melaluinya

    penerangan: perihalan, usang

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiOperation

    Fungsi: @ApiOperation ialah anotasi pada kaedah, menerangkan yang berkaitan maklumat kaedah

    Atribut:

    nilai: Fungsi penerangan kaedah

    nota: Nota kaedah (luaskan penerangan)

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiParm

    Fungsi: @ApiParm ialah anotasi parameter kaedah. Terangkan parameter

    Atribut:

    nama: Nama parameter

    nilai: Terangkan fungsi parameter

    diperlukan: The nilai adalah jenis boolean , menunjukkan sama ada parameter ialah parameter yang diperlukan, lalainya adalah palsu

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiIgnore

    作用:@ApiParm是方法或者参数的注解。忽略注解的方法或者参数,不生成帮助文档

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiImplicitParam(常用)

    作用@ApiParm是作用于类上方法,用来描述方法参数的注解。

    属性

    name:参数名称,和方法的参数一致

    value:参数具体描述

    required:值为boolean类型,表示该参数是否为必要参数,默认为false

    paramType:参数类型

    paramType="字符串"
    paramType = "header"

    dataType:数据类型

    dataType = "string"  //字符串数据
    dataType = "键值对"

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiImplicitParams

    后面跟@ApiImplicitParam的集合,一般用于多个参数的描述

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization token", required = true, dataType = "string", paramType = "header")})

    @ApiModel(常用)

    作用@ApiModel是作用于实体类上,描述一个实体类型,整个实体类型如果成为任何一个生成api帮助文档的返回对象的时候,该注解被解析

    属性

    value:实体类名称

    description:实体类描述

    @ApiModelProperty(常用)

    作用@ApiModel是作用于实体类的属性上,描述实体类属性

    属性

    value:实体属性描述

    name:实体类属性名字,与属性名一致

    Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot

    Atas ialah kandungan terperinci Cara menggunakan Swagger2 dan penjelasan anotasi dalam projek SpringBoot. 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