สร้าง Rest API ใช้งานร่วมกับ SwaggerUI + JPA ด้วย Spring boot
บทความนี้เราจะมายกตัวอย่างการสร้าง REST API ใช้งานร่วมกับ SwaggerUI + JPA โดยใช้ Spring Boot ซึ่งเราจะเอาไอ้เจ้า JPA นี่แหล่ะมาทำ CRUD แบบง่ายๆ มากเว่อร์ Step by step กันค่ะ
JPA คืออะไร ?
JPA ย่อมาจาก Java Persistence API เป็น Java API ตัวนึงที่ทำหน้าที่ Map ข้อมูลจาก database ให้อยู่ในรูปของ Object ในภาษา Java ช่วยลดภาระการเขียนโค้ดและทำให้การจัดการกับข้อมูล Database มีประสิทธิภาพมากขึ้น
JPA เป็นมาตรฐานหรือแนวทางในการทำ ORM (Object Relational Mapping)
Swaagger คืออะไร ?
API Document ช่วยอธิบายโครงสร้างของและความสามารถของ API (Application Programming Interface) ซึ่งไอ้เจ้า Swagger เนี่ย สามารถเอาไป Export SwaggerUI(Online) ได้ด้วยนะ!
SwaaggerUI คืออะไร ?
ก็เหมือน Swagger ที่อธิบายไว้ข้างต้นนั่นแหล่ะ! แต่เพิ่มในส่วนของหน้าตา UI เข้ามาด้วย
Soft waere (ที่ใช้ในการยกตัวอย่าง)
- Eclipse
- JDK 1.8
- Maven 3.2+
- MYSQL Workbench
ขั้นตอนการสร้าง Rest API Step by step
- เปิด MYSQL Workbench ขึ้นมาแล้วเอา SQL Statement ด้านล่างไปรัน
2. เปิด eclipse ขึ้นมาเพื่อทำการสร้างโปรเจค File >New >Other… >Spring Boot > Spring Starter Project >Next
3. กำหนดค่า Group Id, Artifact Id(ชื่อโปรเจค) and Package >Next (ทำตามรูปด้านล่าง)
*** ขั้นตอนนี้ต้องต่อ internet ด้วยนะจ๊ะ
4. เลือก libraries จำเป็นต้องใช้ >Finish
5. เมื่อสร้างโปรเจคเสร็จแล้วจะได้โครงสร้างโปรเจคดังรูป
*** ถ้า Update Maven แล้วไม่ได้โครงสร้างโปรเจ็คแบบนี้ แนะนำให้ ได้เอาโครงสร้าง pom.xml ด้านล่างมาวางแล้ว Update Maven
7. ตัวอย่างการ config file pom.xml ดังต่อไปนี้
*** หลังจากนั้น Click right at project >Maven >Update Project…
8. Update application.properties
9. สร้างไฟล์ Product.java
10. สร้างไฟล์ ProductRepository.java
11. สร้างไฟล์ ProductController.java
12. สร้างไฟล์ SwaggerConfig.java
13. สำหรับตัวอย่าง source code ครบแล้ว! หลังจากนั้นให้ Clik right at project >Run As >Spring Boot App
14. แสดงผลหน้าจอการ Run project พร้อม URL ด้านล่าง
http://localhost:8080/swagger-ui.html
เรียบร้อยแล้วค่ะ สำหรับการสร้าง Rest APIs ใช้งานร่วมกับ Swagger และ JPA ของเราลองไป Test service ได้เลย!!! ไม่ยกตัวอย่างการ Test Service นะคะ เพราะว่ามีเจ้า SwaggerUI อธิบายโครงสร้างโปรเจคอยู่แล้ว! สามารถดู Source code ทั้งหมดด้านล่างเลยค่ะ 🙂
https://gitlab.com/springboot10/springboot-swagger-crud