1. บทนำ
เป้าหมายของ Swagger คือการกำหนดอินเทอร์เฟซมาตรฐานที่ไม่ขึ้นกับภาษาสำหรับ REST API ช่วยให้ผู้ใช้สามารถค้นพบและทำความเข้าใจการทำงานของบริการคอมพิวเตอร์โดยไม่ต้องเข้าถึงซอร์สโค้ด เมื่อกำหนดอย่างถูกต้องโดย Swagger ผู้ใช้สามารถเข้าใจและโต้ตอบกับบริการระยะไกลด้วยตรรกะการใช้งานขั้นต่ำ คล้ายกับอินเทอร์เฟซที่ทำโดยการเขียนโปรแกรมระดับต่ำ
2. ขั้นตอนการใช้งาน
1. เพิ่มการพึ่งพา Maven
<Ederency> <roupId> io.springfox </groupId> <ratifactId> SpringFox-Swagger2 </artifactId> <version> 2.6.1 </version> </derness>
2. คลาสการกำหนดค่า Swagger
@การกำหนดค่า @enablewagger2 // @componentscan (basepackageclasses = jgbjbaseinfocompanyapi.class) หรือ @componentscan (basepackages = "com.summersoft.ts.schedule.supervision.controller" SwaggerspringMvCplugin () {ส่งคืนใบปะหน้าใหม่ (DocumentationType.swagger_2) .apiinfo (apiinfo ()) .Select () // การเลือกเส้นทางและ API จะสร้างเอกสาร. APIS } /** * ข้อมูลเฉพาะ api * * @return * /private apiinfo apiinfo apiinfo () {apiinfo apiinfo = ใหม่ apiinfo ("แพลตฟอร์มการให้บริการ API", // ชื่อ "", // คำอธิบาย "1.0"3. หมายเหตุ Swagger
Swagger จะสแกนไฟล์คลาสด้วยคำอธิบายประกอบ Swagger ภายใต้เส้นทางแพ็คเกจที่กำหนดค่าใน SwaggerConfig และในที่สุดก็สร้างชุดไฟล์ JSON ที่สแกน ...
คำอธิบายคำอธิบายประกอบ Swagger: https://github.com/swagger-api/swagger-core/wiki/annotations#apimodel
@API: ใช้ในชั้นเรียนเพื่อแสดงฟังก์ชั่นของคลาส ควรสังเกตว่าค่าที่ใช้ในรุ่นเก่าแสดงถึงชื่อคลาสที่สร้างขึ้นโดยการสแกน หลังจาก 1.5 ควรใช้แท็กเพื่อแสดงชื่อคลาส
@API (tag = "userController", คำอธิบาย = "API ที่เกี่ยวข้องกับผู้ใช้")
@apioperation: ใช้ในวิธีการเพื่อแสดงฟังก์ชั่นของวิธีการ
@apioperation (value = "ค้นหาผู้ใช้", notes = "ค้นหาผู้ใช้", httpmethod = "get", ผลิต =
MediaType.Application_JSON_UTF8_VALUE)
@Apiparam: ใช้ในรายการพารามิเตอร์เพื่อระบุความหมายของพารามิเตอร์
@apiparam (value = "สร้างหรืออัปเดตเวลาปัจจุบัน (เดือน)") เวลาจำนวนเต็ม
@apiimplicitparams: ใช้เพื่อรวมชุดของคำอธิบายพารามิเตอร์เกี่ยวกับวิธีการ
@apiimplicitparam: ใช้ในการเพิ่มความคิดเห็น @apiimplicitparams โดยระบุแง่มุมต่าง ๆ ของพารามิเตอร์คำขอ
Paramtype: สถานที่วางพารามิเตอร์
ส่วนหัว> การขอพารามิเตอร์การร้องขอ: @requestheader
แบบสอบถาม> การขอพารามิเตอร์การร้องขอ: @requestparam
PATH (สำหรับ RESTful Interface)> การรับพารามิเตอร์คำขอ: @PathVariable
ร่างกาย (ไม่ได้ใช้กันทั่วไป)
แบบฟอร์ม (ไม่ได้ใช้กันทั่วไป)
ชื่อ: ชื่อพารามิเตอร์
ประเภทข้อมูล: ประเภทพารามิเตอร์
จำเป็น: ต้องผ่านพารามิเตอร์หรือไม่
ค่า: ความหมายของพารามิเตอร์
defaultValue: ค่าเริ่มต้นของพารามิเตอร์
@apiimplicitparams ({
@apiimplicitparam (name = "id", value = "id implem id", ต้องการ = true, dataType = "long", paramType = "path"),
-
@apiresponses: ใช้เพื่อแสดงชุดคำตอบ
@apiresponse: ใช้ใน @apiresponses โดยทั่วไปจะใช้เพื่อแสดงข้อมูลการตอบกลับข้อผิดพลาด
รหัส: หมายเลขเช่น 400
ข้อความ: ข้อมูลเช่น "พารามิเตอร์คำขอไม่กรอก"
การตอบสนอง: คลาสที่ทำให้เกิดข้อยกเว้น
@apiresponses (value = {
@apiresponse (รหัส = 400, message = "ไม่มีชื่อให้")
-
@Apimodel: อธิบายข้อมูลของโมเดล (โดยปกติจะใช้เมื่อสร้างโพสต์โดยใช้ @RequestBody Scenarios และพารามิเตอร์คำขอไม่สามารถอธิบายได้โดยใช้คำอธิบายประกอบ @ApiimplictParam)
@apimodel (value = "คลาสเอนทิตีผู้ใช้")
@ApimodelProperty: อธิบายคุณสมบัติของโมเดล
@apimodelProperty (value = "ผู้ใช้เข้าสู่ระบบ")
3. Swagger-ui
ด้วยข้อมูลการกำหนดค่าข้างต้น Swagger จะช่วยให้เราสแกนข้อมูลคลาสทั้งหมดและสร้างไฟล์ JSON ในการทำให้ไฟล์ JSON เป็นมิตรกับผู้คนคุณต้องใช้องค์ประกอบ Swagger-Ui:
1. คำแนะนำ Swagger-ui: https://swagger.io/docs/swagger-tools/
2. ดาวน์โหลด Swagger-Ui สร้างไดเรกทอรี Swagger ใหม่ในไดเรกทอรี WebApp วางไฟล์ในไดเรกทอรี DIST ลงในไดเรกทอรี Swagger และแก้ไขไฟล์ index.html โดยค่าเริ่มต้นคุณจะต้องได้รับ JSON ของ API จากการเชื่อมต่อ http://petstore.swagger.io/v2/swagger.json ที่นี่คุณต้องแก้ไขค่า URL เป็น http: // {ip}: {พอร์ต}/{projectName}/api-docs และค่าใน {} จะถูกกรอกตามสถานการณ์ของตนเอง
ตัวอย่างเช่นค่า URL ของฉันคือ:
http: // localhost: 8080/บัตรกำนัล/api-docs นอกจากนี้คุณต้องกำหนดค่าการเปิดตัวทรัพยากรของ Spring MVC: <MVC: การแมปทรัพยากร = "/swagger/**" ตำแหน่ง = "/swagger/"/>
เคล็ดลับ: มีไฟล์ไม่มากนักในไดเร็กทอรี DIST เริ่มต้น Swagger-ui สามารถปรับแต่งได้ สิ่งนี้ใช้ในโครงการของเรา ไม่จำเป็นต้องเปลี่ยนชื่อโครงการ ชื่อโครงการได้รับแบบไดนามิก: https://files.cnblogs.com/files/jmcui/swagger.zip
3. วิธีการเรียงลำดับอินเทอร์เฟซที่แสดง:
Apissorter: ใช้การเรียงลำดับไปยังรายการ API/TAG มันสามารถเป็น 'alpha' (เรียงตามชื่อ) หรือฟังก์ชั่น (ดู array.prototype.sort () สำหรับวิธีการเรียงลำดับฟังก์ชั่นทำงาน) ค่าเริ่มต้นคือคำสั่งที่ส่งคืนโดยเซิร์ฟเวอร์ยังคงไม่เปลี่ยนแปลง
การดำเนินการสต็อก: ใช้การเรียงลำดับกับรายการการทำงานสำหรับแต่ละ API มันสามารถเป็น 'alpha' (เรียงลำดับโดย alphanumeric), 'method' (เรียงลำดับโดยวิธี HTTP) หรือฟังก์ชั่น (ดู array.prototype.sort () เพื่อทราบว่าฟังก์ชั่นการเรียงลำดับทำงานอย่างไร) ค่าเริ่มต้นคือคำสั่งที่ส่งคืนโดยเซิร์ฟเวอร์ยังคงไม่เปลี่ยนแปลง
บทช่วยสอนด้านบน (แชร์) สำหรับการกำหนดค่าปลั๊กอิน Swagger ใน SpringMVC เป็นเนื้อหาทั้งหมดที่ฉันแบ่งปันกับคุณ ฉันหวังว่าคุณจะให้ข้อมูลอ้างอิงและฉันหวังว่าคุณจะสนับสนุน wulin.com มากขึ้น