คำนำ
ในบล็อกก่อนหน้านี้เราลงทะเบียนบริการไปยังยูเรก้า เราสามารถดูได้จากอินเทอร์เฟซ UI ของ Eureka ซึ่งมีการลงทะเบียนบริการบนเซิร์ฟเวอร์ยูเรก้า อย่างไรก็ตามหากเราต้องการดูว่าวิธีการส่วนต่อประสานส่วนใดที่ให้บริการโดยบริการปัจจุบันเราไม่มีทางที่จะได้รับ วิธีการดั้งเดิมคือการจัดเรียงเอกสารอินเทอร์เฟซบริการสำหรับการสื่อสารระหว่างนักพัฒนา ในกรณีนี้หลายครั้งมันจะทำให้เกิดความไม่สอดคล้องกันระหว่างเอกสารและรหัสเช่นรหัสที่มีการเปลี่ยนแปลง แต่เอกสารอินเทอร์เฟซยังไม่เปลี่ยนแปลงและ Swagger2 ให้เราด้วยวิธีแก้ปัญหาที่สมบูรณ์แบบ ลองมาดูกันว่า Swagger2 แก้ปัญหาได้อย่างไร
1. แนะนำแพ็คเกจ Jar ที่ Swagger2 ขึ้นอยู่กับ
<!-Swagger2-> <การพึ่งพา> <roupId> io.springfox </groupId> <ratifactId> SpringFox-Swagger2 </artifactid> <sersion> 2.2.2 </เวอร์ชัน> <Sersion> 2.2.2 </Service> </dermentency>
2. เริ่มต้นการกำหนดค่าของ Swagger2
@configuration @enablewagger2 // เปิดใช้งาน swagger2 คลาสสาธารณะ swagger2 {@bean สาธารณะ careket createrestapi () {// สร้าง API ข้อมูลพื้นฐานส่งคืนใบปะหน้าใหม่ .apis (requesthandlerselectors.basepackage ("com.chhliu.jpa"))) // สแกน apis ทั้งหมดภายใต้แพ็คเกจนี้ที่ต้องแสดงใน swagger ยกเว้น @apiignore Annotation Annotated.Paths (pathselectors.any ()) } ส่วนตัว Apiinfo apiinfo () {// ข้อมูลพื้นฐานเกี่ยวกับการสร้าง API ซึ่งจะแสดงใน UI Swagger ส่งคืน apiinfobuilder ใหม่ () .title ("สร้าง RESTFUL APIs ใน Spring Boot โดยใช้ Swagger2") // api title.description ("RESTFUL APIs จัดทำโดย rdcloud-jpa") // api คำอธิบาย ("chhliu@") // contaction ("1.0" -หมายเหตุ: คลาสการกำหนดค่านี้จะต้องสร้างขึ้นในไดเรกทอรีแอปพลิเคชันในระดับเดียวกัน เมื่อโครงการเริ่มต้นคลาสการกำหนดค่าจะเริ่มต้น
3. ปรับปรุงข้อมูลเอกสาร API
อินเทอร์เฟซสาธารณะ sonarcontrolleri {@apioperation (value = "รับข้อมูล URL ที่สอดคล้องกับโซนาร์ของกลุ่มโครงการ", notes = "รับข้อมูล URL ที่สอดคล้องกับ sonar ของกลุ่มโครงการตาม ID") // ใช้คำอธิบายประกอบนี้เพื่ออธิบายข้อมูลวิธีการเชื่อมต่อ @apiimplateparams "ยาว", paramType = "path")}) // ใช้คำอธิบายประกอบนี้เพื่ออธิบายข้อมูลพารามิเตอร์วิธี ควรสังเกตที่นี่ว่าพารามิเตอร์พารามิเตอร์จะต้องกำหนดค่าเป็นพา ธ มิฉะนั้นจะมีการรายงานข้อผิดพลาดเมื่อเข้าถึงวิธีการอินเตอร์เฟสใน UI @getMapping ("/get/{id}") sonarurl get (@PathVariable Long ID); @apioperation (value = "รับข้อมูล URL ทั้งหมดที่สอดคล้องกับกลุ่มโครงการ Sonar") @getMapping ("/get/all") รายการ <Sonarurl> getAll (); - หมายเหตุ: ParamType แสดงถึงประเภทของพารามิเตอร์ค่าตัวเลือกคือ "เส้นทาง", "body", "Query", "ส่วนหัว", "Form"
4. ปรับปรุงข้อมูลประเภทการส่งคืน
@Entity (name = "sonar_url") ระดับสาธารณะ Sonarurl ใช้ serializable { / ** * * / ส่วนตัวคงที่สุดท้าย Long SerialVersionUid = 1l; @apiModelProperty (value = "คีย์หลัก", hidden = false, notes = "คีย์หลัก, ซ่อน", จำเป็น = true, datatype = "long") // ใช้คำอธิบายประกอบนี้เพื่ออธิบายข้อมูลคุณสมบัติ เมื่อซ่อน = จริงคุณสมบัตินี้จะไม่แสดงใน API @id @GeneratedValue (strategy = generationType.Auto) ID ยาวส่วนตัว; @apiModelProperty (value = "ที่อยู่ลิงก์ URL") @Column (name = "url") url สตริงส่วนตัว; @ApimodelProperty (value = "Project Group") @column (name = "Team") ทีมสตริงส่วนตัว; @ApimodelProperty (value = "แผนก") @column (name = "แผนก") แผนกสตริงส่วนตัว; ... ละเว้น getter วิธีการตั้งค่า ... }5. เริ่มแอปพลิเคชัน
1. ป้อนในเบราว์เซอร์: http: // localhost: 7622/swagger-ui.html
2. ผลลัพธ์มีดังนี้:
6. API การเข้าถึงเอกสารและการทดสอบ
นอกเหนือจากการให้ฟังก์ชั่นการดูอินเตอร์เฟส API แล้ว Swagger ยังให้ฟังก์ชั่นการดีบักและการทดสอบ
ผลการทดสอบมีดังนี้:
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น