1. Pendahuluan
Tujuan Swagger adalah untuk mendefinisikan antarmuka standar yang tidak tergantung pada bahasa untuk API REST, yang memungkinkan pengguna untuk menemukan dan memahami fungsionalitas layanan komputer tanpa mengakses kode sumber. Ketika didefinisikan dengan benar oleh Swagger, pengguna dapat memahami dan berinteraksi dengan layanan jarak jauh dengan jumlah minimum logika implementasi. Mirip dengan antarmuka yang dibuat oleh pemrograman tingkat rendah.
2. Langkah Implementasi
1. Tambahkan dependensi Maven
<dependency> <GroupId> io.springfox </groupid> <ArTifactId> springfox-swagger2 </artifactid> <version> 2.6.1 </version> </dependency>
2. Kelas Konfigurasi Swagger
@Configuration @enableSwagger2 // @componentscan (basepackageClasses = jgbjbaseInfocompanyapi.class) atau @componentscan (basepackages = "com.summersoft.ts.schedule.supervision.controller") // Paket Paket untuk Kelas Publik Scan Publicer Publicer Publicger Publicer Publicer Publicer Publcon Publcon Paket Cancagger Publagger swaggerspringmvcplugin () {return new docket (documentationType.swagger_2) .apiinfo (apiInfo ()) .select () // memilih jalur dan API mana yang akan menghasilkan dokumen .apis () Pathselectors.any ()) // Mengawasi semua apis.paths (PathselSelectors.any)/ } /** * API Informasi spesifik * * @return * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = new apiinfo ("Dokumen Layanan Dooring API", // Judul ", // Deskripsi" 1.0 ", // Rilis", "" "", "", "", "3. Catatan Swagger
Swagger akan memindai file kelas dengan anotasi Swagger di bawah jalur paket yang dikonfigurasi di SwaggerConfig, dan akhirnya menghasilkan serangkaian file JSON yang dipindai ...
Penjelasan Anotasi Swagger: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@Api: Digunakan pada kelas untuk menggambarkan fungsi kelas. Perlu dicatat bahwa nilai yang digunakan dalam versi yang lebih lama mewakili nama kelas yang dihasilkan oleh pemindaian. Setelah 1.5, tag harus digunakan untuk mewakili nama kelas.
@Api (tag = "usercontroller", description = "API terkait pengguna")
@Apioperation: digunakan dalam metode untuk menggambarkan fungsi metode
@Apioperation (value = "find user", notes = "find user", httpmethod = "get", menghasilkan =
Mediatype.application_json_utf8_value)
@Apiparam: Digunakan dalam daftar parameter untuk menunjukkan arti parameter
@Apiparam (value = "Buat atau perbarui waktu saat ini (bulan)") waktu integer
@ApIImplicitParams: Digunakan untuk memasukkan satu set deskripsi parameter pada metode ini
@ApIImplicitParam: digunakan dalam anotasi @ApiImplicitParams, menentukan berbagai aspek parameter permintaan
ParamType: tempat menempatkan parameter
Header> Permintaan Parameter Akuisisi: @Requestheader
Permintaan> Permintaan Parameter Akuisisi: @RequestParam
Path (untuk antarmuka yang tenang)> mendapatkan parameter permintaan: @pathvariable
tubuh (tidak biasa digunakan)
bentuk (tidak biasa digunakan)
Nama: Nama parameter
DataType: Jenis parameter
Diperlukan: apakah parameter harus dilewati
Nilai: Arti parameter
DefaultValue: Nilai default parameter
@ApIImplicitParams ({
@ApIImplicitParam (name = "id", value = "unik id", wajib = true, datatype = "long", paramType = "path"),
})
@Apirespons: digunakan untuk mewakili serangkaian tanggapan
@Apiresponse: digunakan dalam @apirespons, umumnya digunakan untuk mengekspresikan informasi respons kesalahan
Kode: Nomor, misalnya 400
Pesan: Informasi, seperti "Parameter Permintaan yang Tidak Diisi"
Tanggapan: Kelas yang melempar pengecualian
@Apirespons (value = {
@Apiresponse (kode = 400, pesan = "tidak ada nama yang disediakan")
})
@Apimodel: Menjelaskan informasi model (ini biasanya digunakan saat membuat posting, menggunakan skenario @Requestbody, dan parameter permintaan tidak dapat dijelaskan menggunakan anotasi @ApiImplicitParam)
@Apimodel (value = "kelas entitas pengguna")
@Apimodelproperty: Jelaskan sifat -sifat model
@ApimodelProperty (value = "Login User")
3. SWANGGER-UI
Dengan informasi konfigurasi di atas, Swagger akan membantu kami memindai semua informasi kelas dan menghasilkan file JSON. Untuk membuat file JSON ramah kepada orang-orang, Anda perlu menggunakan komponen Swagger-UI:
1. Instruksi Swagger-OU: https://swagger.io/docs/swagger-tools/
2. Unduh Swagger-UI, buat direktori Swagger baru di direktori WebApp, masukkan file di direktori Dist ke dalam direktori Swagger, dan ubah file index.html. Secara default, Anda perlu mendapatkan JSON API dari koneksi http://petstore.swagger.io/v2/swagger.json. Di sini Anda perlu memodifikasi nilai URL ke http: // {ip}: {port}/{ProjectName}/API-docs, dan nilai-nilai dalam {} diisi sesuai dengan situasi mereka sendiri.
Misalnya, nilai URL saya adalah:
http: // localhost: 8080/voucher/API-docs. Selain itu, Anda perlu mengonfigurasi rilis sumber daya Spring MVC: <MVC: Mapping Resources = "/Swagger/**" Lokasi = "/Swagger/"/>
Tips: Tidak ada begitu banyak file di direktori dist default. Swagger-UI dapat disesuaikan. Ini digunakan dalam proyek kami. Tidak perlu mengubah nama proyek. Nama proyek diperoleh secara dinamis: https://files.cnblogs.com/files/jmcui/swagger.zip
3. Cara mengurutkan antarmuka yang ditampilkan:
Apissorter: Terapkan penyortiran ke daftar API/tag. Ini bisa 'alpha' (diurutkan berdasarkan nama) atau fungsi (lihat array.prototype.sort () untuk cara kerja fungsi sortir). Standarnya adalah bahwa pesanan yang dikembalikan oleh server tetap tidak berubah.
Operationssorter: Menerapkan semacam ke daftar operasi untuk setiap API. Ini bisa 'alfa' (diurutkan berdasarkan alfanumerik), 'metode' (diurutkan dengan metode http) atau fungsi (lihat array.prototype.sort () untuk mengetahui cara kerja fungsi sortir). Standarnya adalah bahwa pesanan yang dikembalikan oleh server tetap tidak berubah.
Tutorial di atas (Bagikan) untuk mengkonfigurasi plug-in Swagger di SpringMVC adalah semua konten yang saya bagikan dengan Anda. Saya harap Anda dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.