Jadual Kandungan
1. Pengenalan kepada Swagger
2. Springboot mengintegrasikan swagger
1. Tambahkan koordinat swagger
2. Pelaksanaan Swagger Helloword
2.1 Cipta projek springboot
2.2. Tulis antara muka
.
Api
@Api
@ApiImplicitParams anotasi dan @ApiImplicitParam
@ApiModel
Rumah Java javaTutorial Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger

Cara menggunakan alat pengurusan antara muka bersepadu SpringBoot Swagger

May 14, 2023 pm 07:04 PM
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>
Salin selepas log masuk

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);
    }

}
Salin selepas log masuk

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

@ApiOperation

  • digunakan untuk mewakili pengendalian permintaan http pada kaedah

    http://localhost:8080/swagger-ui/index.html
    Salin selepas log masuk

    Kes: Gunakan @Api dan @ApiOperation untuk menjana dokumen api
  • 语法:
      @Api(tags = "用户操作")
      或
      @Api(tags = {"用户操作","用户操作2"})
    Salin selepas log masuk
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:方法返回值类型
Salin selepas log masuk
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;
    }
}
Salin selepas log masuk

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 :参数默认值
    Salin selepas log masuk

    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;
    }
}
Salin selepas log masuk
<. 🎜 >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;

}
Salin selepas log masuk

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, "添加失败");
    }
Salin selepas log masuk

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

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 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

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)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana Springboot menyepadukan Jasypt untuk melaksanakan penyulitan fail konfigurasi Bagaimana Springboot menyepadukan Jasypt untuk melaksanakan penyulitan fail konfigurasi Jun 01, 2023 am 08:55 AM

Pengenalan kepada Jasypt Jasypt ialah perpustakaan java yang membenarkan pembangun menambah fungsi penyulitan asas pada projeknya dengan usaha yang minimum dan tidak memerlukan pemahaman yang mendalam tentang cara penyulitan berfungsi dengan tinggi untuk penyulitan sehala dan dua hala. teknologi penyulitan berasaskan piawai. Sulitkan kata laluan, teks, nombor, perduaan... Sesuai untuk penyepaduan ke dalam aplikasi berasaskan Spring, API terbuka, untuk digunakan dengan mana-mana pembekal JCE... Tambahkan kebergantungan berikut: com.github.ulisesbocchiojasypt-spring-boot-starter2 Faedah Jasypt melindungi keselamatan sistem kami Walaupun kod itu bocor, sumber data boleh dijamin.

Cara menjana dokumentasi API menggunakan Swagger dalam PHP Cara menjana dokumentasi API menggunakan Swagger dalam PHP Jun 17, 2023 am 10:40 AM

Dengan pembangunan aplikasi web yang berterusan, API telah menjadi salah satu piawaian untuk pembangunan aplikasi web moden. Walau bagaimanapun, apabila bilangan dan kerumitan API meningkat, mengekalkan dan mendokumentasikannya menjadi semakin rumit. Untuk menyelesaikan masalah ini, Swagger wujud. Ia adalah alat untuk menjana dokumentasi API, memudahkan pembangun menyelenggara dan mendokumentasikan API, di samping menyediakan dokumentasi visual dan pelbagai ciri lain. Dalam artikel ini, kita akan membincangkan cara menggunakan Swagger dalam PHP untuk menjana a

Pembangunan Laravel: Bagaimana menggunakan Laravel Swagger untuk menjana dokumentasi API? Pembangunan Laravel: Bagaimana menggunakan Laravel Swagger untuk menjana dokumentasi API? Jun 13, 2023 am 09:35 AM

Pembangunan Laravel: Bagaimana untuk menggunakan LaravelSwagger untuk menjana dokumentasi API? Apabila membangunkan aplikasi web, berurusan dengan dokumentasi API selalunya merupakan tugas yang membosankan tetapi penting. Dokumentasi API boleh dijana secara automatik dan digambarkan menggunakan Swagger. Dalam pembangunan Laravel, kami boleh menggunakan pakej sambungan LaravelSwagger untuk menjana dokumentasi SwaggerAPI dengan mudah. Artikel ini akan membimbing anda cara menggunakan L

Cara menggunakan Redis untuk melaksanakan kunci teragih dalam SpringBoot Cara menggunakan Redis untuk melaksanakan kunci teragih dalam SpringBoot Jun 03, 2023 am 08:16 AM

1. Redis melaksanakan prinsip kunci teragih dan mengapa kunci teragih diperlukan Sebelum bercakap tentang kunci teragih, adalah perlu untuk menjelaskan mengapa kunci teragih diperlukan. Lawan daripada kunci yang diedarkan ialah kunci yang berdiri sendiri Apabila kami menulis program berbilang benang, kami mengelakkan masalah data yang disebabkan oleh mengendalikan pembolehubah yang dikongsi pada masa yang sama Kami biasanya menggunakan kunci untuk mengecualikan pembolehubah yang dikongsi bersama untuk memastikan ketepatannya pembolehubah yang dikongsi skop penggunaannya adalah dalam proses yang sama. Jika terdapat berbilang proses yang perlu mengendalikan sumber yang dikongsi pada masa yang sama, bagaimanakah ia boleh saling eksklusif? Aplikasi perniagaan hari ini biasanya merupakan seni bina perkhidmatan mikro, yang juga bermakna bahawa satu aplikasi akan menggunakan berbilang proses Jika berbilang proses perlu mengubah suai baris rekod yang sama dalam MySQL, untuk mengelakkan data kotor yang disebabkan oleh operasi yang tidak teratur, keperluan pengedaran. untuk diperkenalkan pada masa ini. Gaya dikunci. Ingin mencapai mata

Bagaimana untuk menyelesaikan masalah bahawa springboot tidak boleh mengakses fail selepas membacanya ke dalam pakej balang Bagaimana untuk menyelesaikan masalah bahawa springboot tidak boleh mengakses fail selepas membacanya ke dalam pakej balang Jun 03, 2023 pm 04:38 PM

Springboot membaca fail, tetapi tidak boleh mengakses perkembangan terkini selepas membungkusnya ke dalam pakej balang Terdapat situasi di mana springboot tidak boleh membaca fail selepas membungkusnya ke dalam pakej balang adalah tidak sah dan hanya boleh diakses melalui strim. Fail berada di bawah resources publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input

Analisis perbandingan dan perbezaan antara SpringBoot dan SpringMVC Analisis perbandingan dan perbezaan antara SpringBoot dan SpringMVC Dec 29, 2023 am 11:02 AM

SpringBoot dan SpringMVC adalah kedua-dua rangka kerja yang biasa digunakan dalam pembangunan Java, tetapi terdapat beberapa perbezaan yang jelas antara mereka. Artikel ini akan meneroka ciri dan penggunaan kedua-dua rangka kerja ini dan membandingkan perbezaannya. Mula-mula, mari belajar tentang SpringBoot. SpringBoot telah dibangunkan oleh pasukan Pivotal untuk memudahkan penciptaan dan penggunaan aplikasi berdasarkan rangka kerja Spring. Ia menyediakan cara yang pantas dan ringan untuk membina bersendirian, boleh dilaksanakan

Bagaimana untuk melaksanakan Springboot+Mybatis-plus tanpa menggunakan pernyataan SQL untuk menambah berbilang jadual Bagaimana untuk melaksanakan Springboot+Mybatis-plus tanpa menggunakan pernyataan SQL untuk menambah berbilang jadual Jun 02, 2023 am 11:07 AM

Apabila Springboot+Mybatis-plus tidak menggunakan pernyataan SQL untuk melaksanakan operasi penambahan berbilang jadual, masalah yang saya hadapi akan terurai dengan mensimulasikan pemikiran dalam persekitaran ujian: Cipta objek BrandDTO dengan parameter untuk mensimulasikan parameter yang dihantar ke latar belakang bahawa adalah amat sukar untuk melaksanakan operasi berbilang jadual dalam Mybatis-plus Jika anda tidak menggunakan alatan seperti Mybatis-plus-join, anda hanya boleh mengkonfigurasi fail Mapper.xml yang sepadan dan mengkonfigurasi ResultMap yang berbau dan kemudian. tulis pernyataan sql yang sepadan Walaupun kaedah ini kelihatan menyusahkan, ia sangat fleksibel dan membolehkan kita

Bagaimana SpringBoot menyesuaikan Redis untuk melaksanakan penyirian cache Bagaimana SpringBoot menyesuaikan Redis untuk melaksanakan penyirian cache Jun 03, 2023 am 11:32 AM

1. Sesuaikan RedisTemplate1.1, mekanisme siri lalai RedisAPI Pelaksanaan cache Redis berasaskan API menggunakan templat RedisTemplate untuk operasi cache data Di sini, buka kelas RedisTemplate dan lihat maklumat kod sumber kelas tersebut. Isytihar kunci, Pelbagai kaedah pesirilan nilai, nilai awal kosong @NullableprivateRedisSe

See all articles