ใบงานปฏิบัติการวิชา Software Design and Development — เรียนรู้การพัฒนา REST API แบบครบวงจรด้วย Node.js/Express และ Python/Flask พร้อมฐานข้อมูล SQLite
- เกี่ยวกับใบงาน
- วัตถุประสงค์การเรียนรู้
- เทคโนโลยีที่ใช้
- ข้อกำหนดเบื้องต้น
- โครงสร้างโปรเจค
- API Endpoints
- เนื้อหาในใบงาน
- เครื่องมือทดสอบ API
- การใช้งานเบื้องต้น
- ผู้จัดทำ
ใบงานนี้เป็นส่วนหนึ่งของรายวิชา Software Design and Development มุ่งเน้นให้นักศึกษาเข้าใจหลักการออกแบบและพัฒนา REST API ผ่านการปฏิบัติจริง โดยใช้ภาษาและเฟรมเวิร์กที่นิยมในอุตสาหกรรม ได้แก่ Node.js/Express และ Python/Flask พร้อมทดสอบด้วย Postman หรือเครื่องมือที่เทียบเท่า
- อธิบายหลักการของ REST API และ HTTP Methods (GET, POST, PUT, DELETE) ได้
- พัฒนา REST API ด้วย Node.js + Express ได้
- พัฒนา REST API ด้วย Python + Flask ได้
- จัดการฐานข้อมูลด้วย SQLite ได้
- ทดสอบ API ด้วย Postman หรือเครื่องมือที่เทียบเท่าได้
| เทคโนโลยี | เวอร์ชัน | หน้าที่ |
|---|---|---|
| Node.js | 22.x LTS | JavaScript Runtime |
| Express | 4.x | Web Framework |
| SQLite3 | 5.x | ฐานข้อมูล |
| cors | 2.x | จัดการ Cross-Origin |
| nodemon | 3.x | Auto-restart (dev) |
| เทคโนโลยี | เวอร์ชัน | หน้าที่ |
|---|---|---|
| Python | 3.13 | ภาษาโปรแกรม |
| Flask | 3.x | Web Framework |
| Flask-CORS | latest | จัดการ Cross-Origin |
| SQLite | built-in | ฐานข้อมูล |
ก่อนเริ่มทำใบงาน ตรวจสอบให้แน่ใจว่าได้ติดตั้งโปรแกรมต่อไปนี้แล้ว:
| โปรแกรม | เวอร์ชันขั้นต่ำ | ดาวน์โหลด |
|---|---|---|
| Node.js | 18.x LTS | nodejs.org |
| Python | 3.10+ | python.org |
| Visual Studio Code | ล่าสุด | code.visualstudio.com |
| Git | ล่าสุด | git-scm.com |
ตรวจสอบการติดตั้ง:
node --version # ควรแสดง v22.x.x หรือสูงกว่า
npm --version # ควรแสดง 10.x.x หรือสูงกว่า
python --version # ควรแสดง 3.10+ (macOS/Linux ใช้ python3)Software-Design-and-Development-REST-API/
│
├── 📄 README.md # ไฟล์นี้
├── 📄 rest-api-lab.md # ใบงานปฏิบัติการหลัก
│
└── 📂 images/ # รูปภาพประกอบใบงาน
├── Postman.png
├── getAllBooking.png
├── run_server.png
└── runPythonApp.png
โครงสร้างที่นักศึกษาจะสร้างระหว่างทำใบงาน:
hotel-booking-api-node/ # การทดลองที่ 1
├── server.js
├── database.js
├── package.json
└── bookings.db # สร้างอัตโนมัติเมื่อรันครั้งแรก
hotel-booking-api-python/ # การทดลองที่ 2
├── app.py
└── bookings.db # สร้างอัตโนมัติเมื่อรันครั้งแรก
API ทั้งสองเวอร์ชัน (Node.js และ Python) รองรับ endpoints เหมือนกัน ต่างกันที่ port:
| Method | Endpoint | คำอธิบาย | Status Code |
|---|---|---|---|
POST |
/api/bookings |
สร้างการจองใหม่ | 201 Created |
GET |
/api/bookings |
ดึงข้อมูลการจองทั้งหมด | 200 OK |
GET |
/api/bookings/:id |
ดึงข้อมูลการจองตาม ID | 200 OK |
PUT |
/api/bookings/:id |
อัปเดตข้อมูลการจอง | 200 OK |
DELETE |
/api/bookings/:id |
ลบข้อมูลการจอง | 204 No Content |
Base URL:
- Node.js →
http://localhost:3000 - Python →
http://localhost:5000
ตัวอย่าง Request Body (POST/PUT):
{
"fullname": "สมชาย ใจดี",
"email": "somchai@example.com",
"phone": "0812345678",
"checkin": "2026-06-01",
"checkout": "2026-06-03",
"roomtype": "standard",
"guests": 2
}ตัวอย่าง Response (201 Created):
{
"id": 1,
"message": "สร้างการจองสำเร็จ"
}- 1.1 การติดตั้งและตั้งค่าสภาพแวดล้อม
- 1.2 การสร้างฐานข้อมูล
- 1.3 การสร้าง REST API
- 1.4 การรัน REST API Server
- 1.5 การทดสอบ API ด้วย Postman
- 2.1 การติดตั้งและตั้งค่าสภาพแวดล้อม
- 2.2 สร้าง Virtual Environment
- 2.3 การสร้าง REST API
- 2.4 การทดสอบ Python REST API
เลือกใช้เครื่องมือใดก็ได้ต่อไปนี้:
| เครื่องมือ | ประเภท | ข้อดี |
|---|---|---|
| Postman | Desktop App | ฟีเจอร์ครบ, รองรับ Collection และ Environment |
| Thunder Client | VS Code Extension | ใช้ได้เลยใน VS Code ไม่ต้องติดตั้งเพิ่ม |
| Bruno | Desktop App | Open Source, ไม่ต้องสร้างบัญชี |
| Hoppscotch | Web App | ใช้งานผ่านเบราว์เซอร์ได้ทันที |
git clone https://github.com/surachai-p/Software-Design-and-Development-REST-API.git
cd Software-Design-and-Development-REST-API# สร้างโฟลเดอร์และติดตั้ง dependencies
mkdir hotel-booking-api-node && cd hotel-booking-api-node
npm init -y
npm install express sqlite3 cors
npm install --save-dev nodemon
# รันเซิร์ฟเวอร์
npm run dev
# Server จะรันที่ http://localhost:3000# สร้างโฟลเดอร์และ Virtual Environment
mkdir hotel-booking-api-python && cd hotel-booking-api-python
python -m venv venv
# เปิดใช้งาน Virtual Environment
source venv/bin/activate # macOS / Linux
venv\Scripts\activate # Windows
# ติดตั้ง dependencies และรัน
pip install flask flask-cors
python app.py
# Server จะรันที่ http://localhost:5000Surachai P.
- GitHub: @surachai-p
โปรเจคนี้เผยแพร่ภายใต้ MIT License