Skip to content
 
 

Repository files navigation

🏨 การพัฒนา REST API สำหรับระบบจองห้องพัก

Node.js Express Python Flask SQLite License

ใบงานปฏิบัติการวิชา Software Design and Development — เรียนรู้การพัฒนา REST API แบบครบวงจรด้วย Node.js/Express และ Python/Flask พร้อมฐานข้อมูล SQLite


📋 สารบัญ


📖 เกี่ยวกับใบงาน

ใบงานนี้เป็นส่วนหนึ่งของรายวิชา 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 หรือเครื่องมือที่เทียบเท่าได้

🛠️ เทคโนโลยีที่ใช้

การทดลองที่ 1 — Node.js

เทคโนโลยี เวอร์ชัน หน้าที่
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)

การทดลองที่ 2 — Python

เทคโนโลยี เวอร์ชัน หน้าที่
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 Endpoints

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: การพัฒนา REST API ด้วย Node.js

การทดลองที่ 2: การพัฒนา REST API ด้วย Python


🧪 เครื่องมือทดสอบ API

เลือกใช้เครื่องมือใดก็ได้ต่อไปนี้:

เครื่องมือ ประเภท ข้อดี
Postman Desktop App ฟีเจอร์ครบ, รองรับ Collection และ Environment
Thunder Client VS Code Extension ใช้ได้เลยใน VS Code ไม่ต้องติดตั้งเพิ่ม
Bruno Desktop App Open Source, ไม่ต้องสร้างบัญชี
Hoppscotch Web App ใช้งานผ่านเบราว์เซอร์ได้ทันที

🚀 การใช้งานเบื้องต้น

Clone Repository

git clone https://github.com/surachai-p/Software-Design-and-Development-REST-API.git
cd Software-Design-and-Development-REST-API

การทดลองที่ 1 — Node.js

# สร้างโฟลเดอร์และติดตั้ง 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

การทดลองที่ 2 — Python

# สร้างโฟลเดอร์และ 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:5000

👨‍💻 ผู้จัดทำ

Surachai P.


📄 License

โปรเจคนี้เผยแพร่ภายใต้ MIT License


ใบงานปฏิบัติการ — Software Design and Development

About

68030120-Tanatap

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors