cari
RumahJavajavaTutorialCara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger

1. Pengenalan kepada Swagger

Swagger ialah satu siri alatan API RESTful, anda boleh mendapatkan dokumen interaktif projek, penjanaan automatik SDK pelanggan dan fungsi lain.

Matlamat Swagger adalah untuk mentakrifkan antara muka bebas bahasa yang standard untuk REST API, supaya orang ramai dan komputer tidak dapat melihat kod sumber atau dokumen atau tidak boleh melepasi Keupayaan untuk menemui trafik rangkaian dan memahami fungsi pelbagai perkhidmatan. Apabila perkhidmatan ditakrifkan melalui Swagger, pengguna boleh berinteraksi dengan perkhidmatan jauh dengan sedikit logik pelaksanaan.

2. Springboot mengintegrasikan swagger

Konsep menggunakan Spring Boot untuk menyepadukan Swagger adalah menggunakan anotasi untuk menandakan maklumat yang perlu dipaparkan dalam dokumen API akan menggunakan anotasi yang ditanda dalam projek untuk Menjana dokumentasi API yang sepadan. Swagger dikenali sebagai alat API yang paling popular di dunia Ia menyediakan penyelesaian lengkap untuk pengurusan API.

1. Tambahkan koordinat swagger

Spring Boot menyepadukan Swagger 3 adalah sangat mudah. ​​Anda hanya perlu memperkenalkan kebergantungan dan melakukan konfigurasi asas.

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-boot-starter</artifactId>
    <version>3.0.0</version>
</dependency>

2. Pelaksanaan Swagger Helloword

2.1 Cipta projek springboot

Tambahkan anotasi @EnableOpenApi ke kelas permulaan untuk mendayakan fungsi dokumen api swagger

rreee.
2.2. Tulis antara muka
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import springfox.documentation.oas.annotations.EnableOpenApi;

@SpringBootApplication
@EnableOpenApi  //启动swagger api文档注解
public class SpringBootWithSwaggerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootWithSwaggerApplication.class, args);
    }

}

Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger

2.3.3.3.

Swagger menunjukkan melalui anotasi bahawa antara muka akan menjana dokumen, termasuk nama antara muka, kaedah permintaan, parameter, maklumat pemulangan, dll. Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger

1,

Api

anotasi dan

ApiOperation

anotasi

@Api

  • digunakan pada kelas untuk menunjukkan bahawa ia adalah kesombongan sumber @API mempunyai dua atribut: value , tags.

    Dokumen api yang dijana akan dikelaskan mengikut teg Secara terang-terangan, dokumen antara muka yang dijana oleh semua antara muka dalam pengawal ini akan berada di bawah senarai teg jika teg mempunyai berbilang nilai, berbilang senarai akan dijana . Setiap senarai memaparkan semua antara muka
fungsi nilai seperti teg, tetapi tidak boleh mempunyai berbilang nilai

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 阿水
 * @create 2023-04-11 9:54
 */
@RestController()
public class SwaggerController {
    @GetMapping ("hello")
    public String hello(String params) {
        return "hello swagger"+" param为:"+params;
    }
}

@ApiOperation

  • digunakan untuk mewakili pengendalian permintaan http pada kaedah

    http://localhost:8080/swagger-ui/index.html

    Kes: Gunakan @Api dan @ApiOperation untuk menjana dokumen api
  • 语法:
      @Api(tags = "用户操作")
      或
      @Api(tags = {"用户操作","用户操作2"})
2,

ApiImplicitParams

anotasi dan

ApiImplicitParam

@ApiImplicitParams anotasi dan @ApiImplicitParam

digunakan untuk parameter bukan objek dalam kaedah (pengikat parameter) apabila menggunakan jenis mudah. ​​) untuk penjelasan

语法:
    @ApiOperation(value = "", 
                  notes = "", 
                  response = )
属性说明:
  value:方法说明标题
  notes:方法详细描述
  response:方法返回值类型
Nota: Atribut nama @ApiImplicitParam harus menggemakan nilai @RequestParam atau @PathVariable. Kes: Gunakan anotasi @ApiImplicitParams dan @ApiImplicitParam untuk menerangkan parameter kaedah
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 阿水
 * @create 2023-04-11 9:54
 */
@RestController()
@Api(tags = {"操作用户"})
public class SwaggerController {
    @GetMapping ("hello")
    @ApiOperation(value = "swagger请求",notes = "阿水的第一个swagger请求",response = String.class)
    public String hello(String params) {
        return "hello swagger"+" param为:"+params;
    }
}

3. Anotasi ApiModel dan ApiModelProperty

>Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger>

@ApiModel

    digunakan pada kelas entiti untuk menerangkan kelas dan digunakan untuk arahan penerimaan parameter dalam kelas entiti.
  • 语法:
    @ApiImplicitParams(value = {
         @ApiImplicitParam(name="", value = "", type = "", required = true, paramType = "", defaultValue  = "")
    })
    
    属性说明:
        name:形参名称
        value:形参的说明文字
        type:形参类型
        required:该参数是否必须  true|false
        paramType: 用于描述参数是以何种方式传递到 Controller 的,它的值常见有: path, query, body 和 header 
            path 表示参数是『嵌在』路径中的,它和 @PathVariable 参数注解遥相呼应;
        	query 表示参数是以 query string 的形式传递到后台的(无论是 get 请求携带在 url 中,还是 post 请求携带在请求体中),它和 @RequestParam 参数注解遥相呼应;
        	header 表示参数是『藏在』请求头中传递到后台的,它和 @RequestHeader 参数注解遥相呼应的。
        	form 不常用.
        defaultValue :参数默认值

    4 ApiResponse dan ApiResponses

  • Anotasi @ApiResponses dan anotasi @ApiResponse ditandakan pada kaedah Pengawal untuk menerangkan respons permintaan HTTP
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 阿水
 * @create 2023-04-11 9:54
 */
@RestController()
@Api(tags = {"操作用户"})
public class SwaggerController {
    @GetMapping ("hello")
    @ApiOperation(value = "swagger请求",notes = "阿水的第一个swagger请求",response = String.class)
    @ApiImplicitParams(value ={
            @ApiImplicitParam(name="param1",
                    value = "参数名1",
                    type = "String",
                    required = true,
                    paramType = "query",
                    defaultValue  = "阿水所想的默认值1" ),
            @ApiImplicitParam(name="param2",
                    value = "参数名2",
                    type = "String",
                    required = true,
                    paramType = "query",
                    defaultValue  = "阿水所想的默认值2" )
    })
    public String hello(String param1,String param2) {
        return "hello swagger"+" param1为:"+param1+"param2为"+param2;
    }
}
<.>5. Cipta kelas konfigurasi SwaggerConfig

Tambah dua kaedah dalam SwaggerConfig: (satu kaedah ialah membuat persediaan tambahan untuk kaedah lain)

kaedah api() menggunakan @Bean, Dimulakan pada permulaan, instance Docket (objek ringkasan Swagger API) dikembalikan Apa yang perlu diperhatikan di sini ialah .apis(RequestHandlerSelectors.basePackage("xxx.yyy.zzz")) menentukan laluan pakej yang perlu diimbas Pengawal di bawah laluan ini Kelas akan menjana dokumentasi API Swagger secara automatik.

@ApiModel("用户类")
@Data
public class Users {

    @ApiModelProperty(value = "编码:主键")
    private Integer id;

    @ApiModelProperty(value = "用户名")
    private String username;

    @ApiModelProperty(value = "密码")
    private String password;

}

Konfigurasi kaedah apiInfo() agak penting Maklumat asas yang dipaparkan pada halaman konfigurasi utama termasuk tajuk, penerangan, versi, syarat perkhidmatan, dll. Jika anda melihat kod sumber kelas ApiInfo. , anda juga akan menemui lebih banyak konfigurasi seperti sokongan lesen

4 Springsecurity menyepadukan kesombongan

4.1, mengkonfigurasi alamat yang dikeluarkan

/**
     * 添加用户
     *
     * @param user
     * @return
     */
    @PostMapping("/add")
    @ApiOperation(value = "添加用户",notes = "添加用户信息",response = ResponseResult.class)
    @ApiResponses({ @ApiResponse(code = 200, message = "添加成功", response = ResponseResult.class),
            	    @ApiResponse(code = 500, message = "添加失败", response = ResponseResult.class) })
    public ResponseResult<Void> addUser(@RequestBody User user) {
        //获得生成的加密盐
        user.setSalt(SaltUtils.getSalt());
        int n = userService.addUser(user);
        if (n > 0) {
            return new ResponseResult<Void>(200, "添加成功");
        }
        return new ResponseResult<Void>(500, "添加失败");
    }

4.2, menggantikan UI

.

Keseluruhan proses di atas telah selesai, tetapi yang dihasilkan Malah, ramai orang tidak menyukai halaman dokumen antara muka, dan merasakan ia tidak selaras dengan tabiat penggunaan orang Cina, jadi beberapa pakar telah menyediakan yang lain halaman ujian UI. Penggunaan halaman ini agak meluas.

Import kebergantungan berikut, mulakan semula projek dan akses alamat: http://localhost:8080/doc.html

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;

/**
 * Swagger配置类
 */
@Configuration  //项目启动时加载此类
public class SwaggerConfig {
    @Bean
    public Docket api(){
        return new Docket(DocumentationType.OAS_30)
                .apiInfo(apiInfo())
                .select()
                // 此处自行修改为自己的 Controller 包路径。
                .apis(RequestHandlerSelectors.basePackage("com.lps.controller"))
                .paths(PathSelectors.any())
                .build();
    }

    public ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("阿水的项目接口文挡")
                .description("阿水的 Project Swagger2 UserService Interface")  //说明信息
                .termsOfServiceUrl("http://localhost:8080/swagger-ui/index.html") //文档生成的主页地址
                .version("1.0")  //文档版本
                .build();
    }
}

Atas ialah kandungan terperinci Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat

Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna