Rumah  >  Artikel  >  Java  >  Cara menggunakan Swagger dalam SpringBoot

Cara menggunakan Swagger dalam SpringBoot

WBOY
WBOYke hadapan
2023-05-17 20:16:101571semak imbas

Integrate Swagger

Dependencies:

<!-- Swagger -->
<dependency>
    <groupId>com.battcn</groupId>
    <artifactId>swagger-spring-boot-starter</artifactId>
    <version>2.1.5-RELEASE</version>
</dependency>

Anda mungkin perasan bahawa Swagger yang saya ada di sini tidak rasmi Ia disepadukan oleh pihak ketiga dan konfigurasinya lebih mudah.

Konfigurasi terperinci

Konfigurasi terperinci:

spring:
  swagger:
    enabled: true
    title: 标题
    description: 描述信息
    version: 系统版本号
    contact:
      name: 维护者信息
    base-package: swagger扫描的基础包,默认:全扫描(分组情况下此处可不配置)
    #全局参数,比如Token之类的验证信息可以全局话配置
    global-operation-parameters:
    -   description: "Token信息,必填项"
        modelRef: "string"
        name: "Authorization"
        parameter-type: "header"
        required: true
    groups:
      basic-group:
        base-package: com.battcn.controller.basic
      system-group:
        base-package: com.battcn.controller.system

Konfigurasi saya

spring:
  swagger:
    title: 星空小屋 - 文章微服务接口
    description: 文章微服务相关接口,包括文章、模块、知识点管理等
    version: 1.0.0 - SNAPSHOT
    contact:
      name: cv大魔王
      email: 1919301983@qq.com
    host: localhost
    enabled: true
    security:
      filter-plugin: true # 配置账号密码
      username: root
      password: root

Konfigurasikan pemintas, terdapat konfigurasi pemintas kemudian, jika ada pembaca yang perlu mengkonfigurasinya sendiri Untuk kegunaan projek, sila ubah suai konfigurasi pemintas asal dan abaikan laluan berikut untuk mengelak daripada dipintas dan mengakibatkan tidak boleh diakses. "swagger-ui.html", "static/css/", "static/js/", "swagger-resources", "/**/error", "v2/api-docs"

Uji menggunakan

untuk menjalankan projek dan akses IP+端口号/swagger-ui.html, sebagai contoh, akses dalam penyemak imbas: http://127.0.0.1:13001/swagger-ui.html

Cara menggunakan Swagger dalam SpringBoot

Kesan selepas log masuk:

Cara menggunakan Swagger dalam SpringBoot

Semakan - Anotasi Biasa

Jika anda sudah biasa dengan sombong, sila abaikan "Perenggan anotasi biasa"

`@Api`:用在 Controller 类上,描述该类的作用
  1. `value`="描述信息"
  2. `description`="详细描述该类的作用"

@ApiOperation: digunakan pada kaedah permintaan Pengawal untuk menerangkan fungsi kaedah.

@ApiModel: digunakan apabila parameter permintaan ialah objek, menerangkan peranan kelas objek

// 在对象类上使用@ApiModel
@ApiModel(value="CategoryREQ对象", description="类别查询条件")
public class CategoryREQ extends BaseRequest<Category> {
}

@ApiModelProperty: digunakan apabila parameter permintaan ialah atribut objek, menerangkan peranan atribut objek .

  • value: perihalan atribut

  • hidden: sama ada ia adalah atribut syarat pertanyaan, palsu: (nilai lalai) dalam dokumen api Dipaparkan sebagai syarat pertanyaan benar tersembunyi, bukan atribut bersyarat

// 请求方法参数是 CategoryREQ 对象
public Result search(@RequestBody CategoryREQ req) {}

@ApiModel(value="CategoryREQ对象", description="类别查询条件")
public class CategoryREQ extends BaseRequest<Category> {
    
    @ApiModelProperty(value = "分类名称")
    private String name;

    @ApiModelProperty(value="状态(1:正常,0:禁用)")
    private Integer status;
}
  • @ApiResponses: digunakan pada kaedah permintaan untuk mewakili set respons

  • @ApiResponse: digunakan dalam @ApiResponses, biasanya digunakan untuk menyatakan mesej respons ralat, parameter anotasi:

  • code : Nombor, seperti 400message: Maklumat, seperti "Ralat pengisian parameter"response: Kelas yang membuang pengecualian

@ApiIgnore: Gunakan anotasi ini untuk mengabaikan perkara ini API

@ApiImplicitParams: Digunakan atas kaedah permintaan untuk menambah huraian pada berbilang parameter permintaan

@ApiImplicitParam: Boleh digunakan secara bersendirian atau dalam @ApiImplicitParams untuk menambah penerangan pada satu parameter permintaan kaedah .

  1. name: Nama parameter

  2. value: Perihalan fungsi parameter

  3. dataType: jenis parameter, jenis parameter, String lalai, nilai lain dataType="Integer"

  4. defaultValue: nilai lalai parameter

  5. required: Sama ada parameter mesti diluluskan (benar/salah)

  6. paramTpye: Tentukan tempat untuk meletakkan parameter (header/query/path/ badan/bentuk)

header: Parameter diserahkan dalam pengepala permintaan @RequestHeader
query: Pemetaan dan tugasan automatik dilengkapkan terus dengan parameter @RequestParam
path: Dihantar dalam bentuk pembolehubah laluan Data @PathVariable
body: Penyerahan dalam bentuk aliran hanya menyokong POST (tidak biasa digunakan)
form: Penyerahan dalam bentuk hanya menyokong POST (tidak biasa digunakan)
Rujukan:

// 请求方法有多个请求参数 size, current
@ApiImplicitParams({
    @ApiImplicitParam(name="current", value="页码", required=true, paramType="path",dataType="int"),
    @ApiImplicitParam(name="size", value="每页记录数", required=true, paramType="path",dataType="int")
})
@ApiOperation("根据分类名称与状态查询分类列表接口")
@PostMapping("/search/{current}/{size}")
Result search(@RequestBody CategoryREQ req, @PathVariable int current, @PathVariable int size);

Atas ialah kandungan terperinci Cara menggunakan Swagger dalam 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