พาทำ Web Service แบบมืออาชีพ ด้วย Spring Boot และ Java
Table of Contents
บทความที่ผ่านมาได้พูดถึง Spring Framework โดยมีแนวคิดหลักคือเราสามารถเขียน Code ไว้ก่อน แล้วค่อยตั้งค่าการทำงานต่างๆ (Configuration) ช่วยให้เรามีความยืดหยุ่นในการสร้าง Software
Note 1: Spring Framework ที่อธิบายในบทความนี้เป็นเวอร์ชัน 6.x
Note 2: Spring Boot ที่อธิบายในบทความนี้เป็นเวอร์ชัน 3.x
Spring Framework จะมี Framework ให้ใช้อีกหลายตัว เช่น Spring Boot, Spring Cloud, Spring Data และอีกมากมาย
ก่อนอื่นเรามารู้จักกับ Web Application ที่นิยมในปัจจุบันกันก่อน
เขาสร้าง Web Application กันยังไง
ในปี 2003 ได้เกิดสิ่งที่เรียกว่า MVC Web Application ขึ้นมา เพื่อช่วยในการสร้าง Web Application โดยประกอบไปด้วย 3 ส่วน
-
M หมายถึง Model เป็นส่วนของข้อมูล
-
V หมายถึง View เอาไว้ใช้แสดงผล
-
C หมายถึง Controller ประกอบไปด้วย Method หลายตัว มีหน้าที่ทำงานตาม Request ที่เข้ามา แล้วเรียกใช้ Method ที่เหมาะสม ดูตัวอย่างได้จากรูปด้านล่าง

ซึ่งประโยชน์ของ MVC Web Application คือ Unit Testing นั่นเอง
ในบทความนี้เราจะมาทำในส่วน Controller โดยใช้ Spring Boot สร้าง Web Service ที่ช่วยจัดการกับ HTTP Requests ที่เข้ามา แล้วเลือกใช้ Method ที่เหมาะสม
ตัวอย่าง HTTP Request เช่น
http://localhost:8080/dateTip: ในภาษา Java จะเรียก Function ว่า Method
Spring Boot ช่วยอะไร
Spring Boot มีแนวคิดหลักคือ “Auto Configuration” หมายถึงมีการตั้งค่าแบบ Default มาให้แล้ว ช่วยเพิ่มความสะดวกสบายให้กับผู้ที่ต้องการสร้าง MVC Web Application
แต่ถึงมีค่า Default มาให้แล้ว ก็สามารถแก้ไขได้นะ ยกตัวอย่างเช่น ค่า Default เราทำงานที่ http://localhost:8080
แต่จะเปลี่ยนเป็น http://localhost:1000 ก็ได้
มาทำไปพร้อมกัน สามารถกดดู Code ได้จาก ที่นี่
สร้าง Project
มาลองสร้าง Project ของเราแบบไม่ต้องใช้เมาส์กัน เข้าไปที่ Terminal ในเครื่องของตัวเองแล้วใช้คำสั่งในตารางด้านล่าง จากบนลงล่างเลย (ระบบปฏิบัติการ windows / macOS ใช้คำสั่งไม่เหมือนกันนะ)
Windows | macOS |
|---|---|
| mkdir java-spring-boot | mkdir java-spring-boot |
| cd java-spring-boot | cd java-spring-boot |
| echo X > pom.xml | touch pom.xml |
| mkdir code | mkdir code |
| mkdir code\service | mkdir code/service |
| echo X > code\service\Start.java | touch code/service/Start.java |
| mkdir test | mkdir test |
| mkdir test\service | mkdir test/service |
| echo X > code\service\Test.java | touch code/service/Test.java |

เขียน File ต่างๆ
เข้าไปที่ Apache NetBeans เลือก File -> Open Project เลือก Folder ที่เราพึ่งสร้างไป (java-spring-boot)
Folder ไหนที่มีไฟล์ pom.xml จะถือว่าเป็น Maven project ทำให้ NetBeans หาเจอ
ต่อไปมาดูรายละเอียดต่างๆในไฟล์ สามารถเปิด Code ที่แปะไว้ใน GitHub พร้อมกับอ่านคำอธิบายจากบทความนี้ได้เลยยย
pom.xml
POM ย่อมาจาก Project Object Model เป็นไฟล์ที่เอาไว้กำหนดการตั้งค่าต่างๆในโปรเจค
modelVersion -> เวอร์ชันของ Project Object Model
groupId -> มักจะหมายถึงชื่อของบริษัทที่เขียนกลับหลัง
artifactId -> มักจะหมายถึงชื่อของโปรเจค
dependencies -> เป็นคำสั่งเพิ่มเติม โดยในโปรเจคนี้เราใช้ Spring Boot จะดาวน์โหลด Web Server ที่ชื่อ Tomcat มาให้โดยอัตโนมัติและมี Default Port คือ http://localhost:8080
build -> กำหนด Folder ที่เราเขียน Code นั่นคือ Folder ชื่อ Code และ Test
properties -> กำหนดว่าใช้ Java เวอร์ชัน 22
Start.java
ประกอบไปด้วย 3 Class
Class Start
โดยที่ข้างในมี Function main อยู่ เนื่องจาก Java จะเริ่มต้นรันโปรเจคจากการมองหา File ที่มี Function main ก่อน Class นี้จึงทำหน้าที่เป็นการทำงานหลักของโปรแกรม
Class Setup
ทำหน้าที่เป็น Configuration Class ถูกกำหนดด้วย @SpringBootApplication เป็นการตั้งค่าเบื้องต้นสำหรับ Spring Boot ซึ่งจะมีบทบาทสำคัญในโปรเจคเมื่อมีการใช้งาน Spring Beans ในอนาคต (แต่ในโปรเจคนี้ไม่ได้ใช้งาน)
Class Sample
ทำหน้าที่เป็น Controller ช่วยจัดการ HTTP Request ที่เข้ามา ถูกกำหนดด้วย @RestController
จากนั้น map URL กับ Method ที่เราต้องการใช้ให้ตรงกัน ด้วยคำสั่ง @RequestMapping() ตัวอย่างเช่น เมื่อเราเข้าไปที่ http://localhost:8080/check จะต้องใช้ Method ที่ชื่อ check()
ถึงเวลาชื่นชมผลงาน
กด Build จากนั้นกด Run

ถ้า Run สำเร็จ ที่ Console ด้านล่างจะแสดงผลแบบนี้
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.3.2)จะหมายถึง Project ของเราได้ถูกรันเรียบร้อย
มาลองทดสอบ Web Service ที่เราสร้าง โดยการเข้าไปที่ Web Browser อะไรก็ได้แล้ว
กรอก URL ด้านล่างลงไป
http://localhost:8080/checkใน Web Browser ของเราต้องแสดงผลว่า Spring Boot is Ready! เนื่องจาก เรากำหนดให้ HTTP Request นี้ จะไปเรียก Method ที่ชื่อ check()
ไหนลองอีกอันซิ
http://localhost:8080/dateถ้าเกิดว่า Web Browser แสดงผลเป็นวันเวลา ณ ปัจจุบันที่ประเทศไทย ก็ขอแสดงความยินดีด้วย โปรเจคของเราทำงานถูกต้องแล้วว
Tip: จริงๆแล้วเราไม่จำเป็นต้องเขียนไฟล์ pom.xml เอง เราสามารถสร้างโปรเจคได้จาก https://start.spring.io/ แต่เพื่อความเข้าใจเลยพาเขียนเองซะเลย5555
สรุป
บทความนี้ได้พาไปรู้จักกับ MVC Web Application ซึ่งเป็นรูปแบบการพัฒนา Web Application ที่ได้รับความนิยมมากที่สุดในปัจจุบัน
โดยอธิบายแนวคิดหลักของ Spring Boot ที่ช่วยในการตั้งค่าแบบอัตโนมัติ (Auto Configuration)
จากนั้นได้อธิบายการสร้าง Web Service โดยใช้ Spring Boot ซึ่งมี Controller ที่ทำหน้าที่จัดการกับ HTTP requests ที่เข้ามา และเรียกใช้ Method ที่ต้องการเพื่อส่งผลลัพธ์กลับไปยังผู้ใช้นั่นเองงง
ในบทความต่อไป จะพาไปสร้าง Web Service ที่เชื่อมกับ Database สนุกแน่นอน
หวังว่าบทความนี้จะเป็นจุดเริ่มต้นที่ดีสำหรับผู้ที่อยากศึกษา Spring Boot นะครับ