ในยุคที่ระบบซอฟต์แวร์มักต้องเชื่อมต่อกันผ่านอินเทอร์เน็ต ไม่ว่าจะเป็นเว็บแอปพลิเคชัน แอปมือถือ หรือระบบหลังบ้าน (backend) การใช้ API (Application Programming Interface) จึงเป็นสิ่งสำคัญมาก โดยเฉพาะ RESTful API ที่เป็นมาตรฐานในการออกแบบ API ซึ่งได้รับความนิยมสูงสุดในปัจจุบัน
✅ RESTful API คืออะไร?
REST (Representational State Transfer) เป็นรูปแบบของการออกแบบ API โดยใช้หลักการของ HTTP ที่เราคุ้นเคยกัน เช่น GET
, POST
, PUT
, DELETE
เพื่อสื่อสารและจัดการกับข้อมูลในรูปแบบที่เป็นมาตรฐาน
ตัวอย่างเช่น:
Method | ความหมาย | ตัวอย่าง URL | ใช้ทำอะไร |
---|---|---|---|
GET | อ่านข้อมูล | /users | ดึงรายชื่อผู้ใช้ทั้งหมด |
GET | อ่านข้อมูล | /users/1 | ดึงข้อมูลผู้ใช้ ID = 1 |
POST | เพิ่มข้อมูล | /users | เพิ่มผู้ใช้ใหม่ |
PUT | แก้ไขข้อมูล | /users/1 | แก้ไขข้อมูลผู้ใช้ ID = 1 |
DELETE | ลบข้อมูล | /users/1 | ลบผู้ใช้ ID = 1 |
🔧 ตัวอย่างโค้ด RESTful API ด้วย Node.js (Express.js)
ติดตั้ง Express ก่อน:
npm init -y npm install express
สร้างไฟล์ app.js
:
const express = require('express'); const app = express(); app.use(express.json()); let users = [ { id: 1, name: "John Doe" }, { id: 2, name: "Jane Smith" } ]; // GET - ดึงผู้ใช้ทั้งหมด app.get('/users', (req, res) => { res.json(users); }); // GET - ดึงผู้ใช้ตาม ID app.get('/users/:id', (req, res) => { const user = users.find(u => u.id == req.params.id); if (user) res.json(user); else res.status(404).send("User not found"); }); // POST - เพิ่มผู้ใช้ app.post('/users', (req, res) => { const newUser = { id: users.length + 1, name: req.body.name }; users.push(newUser); res.status(201).json(newUser); }); // PUT - แก้ไขผู้ใช้ app.put('/users/:id', (req, res) => { const user = users.find(u => u.id == req.params.id); if (user) { user.name = req.body.name; res.json(user); } else { res.status(404).send("User not found"); } }); // DELETE - ลบผู้ใช้ app.delete('/users/:id', (req, res) => { users = users.filter(u => u.id != req.params.id); res.status(204).send(); }); app.listen(3000, () => console.log('Server started on port 3000'));
รันเซิร์ฟเวอร์:
node app.js
🧰 ตัวอย่างโค้ด RESTful API ด้วย PHP (Vanilla PHP)
สร้างไฟล์ api.php
:
<?php header("Content-Type: application/json"); $method = $_SERVER['REQUEST_METHOD']; $uri = explode('/', trim($_SERVER['REQUEST_URI'], '/')); $users = [ 1 => ['id' => 1, 'name' => 'John Doe'], 2 => ['id' => 2, 'name' => 'Jane Smith'] ]; switch ($method) { case 'GET': if (isset($uri[1]) && is_numeric($uri[1])) { $id = (int)$uri[1]; if (isset($users[$id])) { echo json_encode($users[$id]); } else { http_response_code(404); echo json_encode(["error" => "User not found"]); } } else { echo json_encode(array_values($users)); } break; case 'POST': $data = json_decode(file_get_contents("php://input"), true); $id = count($users) + 1; $users[$id] = ['id' => $id, 'name' => $data['name']]; http_response_code(201); echo json_encode($users[$id]); break; case 'PUT': $id = (int)$uri[1]; if (isset($users[$id])) { $data = json_decode(file_get_contents("php://input"), true); $users[$id]['name'] = $data['name']; echo json_encode($users[$id]); } else { http_response_code(404); echo json_encode(["error" => "User not found"]); } break; case 'DELETE': $id = (int)$uri[1]; if (isset($users[$id])) { unset($users[$id]); http_response_code(204); } else { http_response_code(404); echo json_encode(["error" => "User not found"]); } break; default: http_response_code(405); echo json_encode(["error" => "Method not allowed"]); }
✅ แนะนำให้รันในเซิร์ฟเวอร์ท้องถิ่น เช่น XAMPP, Laragon หรือ PHP built-in server
php -S localhost:8000
จากนั้นเข้าผ่าน http://localhost:8000/api.php/users
🌐 RESTful API ใช้ในสถานการณ์ใดบ้าง?
- แอปพลิเคชันมือถือ ต้องดึงข้อมูลจากเซิร์ฟเวอร์
- Frontend SPA (React, Vue) ต้องคุยกับ backend
- ระบบ IoT ที่ต้องเชื่อมต่อกับ backend
- เว็บแอปแบบ microservices แบ่งบริการย่อยคุยกันด้วย REST
🎯 ข้อดีของ RESTful API
- ใช้งานง่าย เข้าใจไม่ยาก (ใช้ HTTP มาตรฐาน)
- รองรับได้ทุกภาษาและแพลตฟอร์ม
- ใช้กับ Cloud, IoT, Mobile, Web ได้สบาย
🚨 ข้อควรระวัง
- ต้องใส่ใจเรื่อง ความปลอดภัย เช่นการยืนยันตัวตน (Auth), การจำกัดสิทธิ์ (Role)
- หากข้อมูลมีความซับซ้อนมาก บางครั้งอาจเหมาะกับ GraphQL มากกว่า REST
- ต้องออกแบบ API route ให้มีมาตรฐาน สื่อความหมายได้ดี
สรุป
RESTful API เป็นเทคนิคสำคัญในการสื่อสารระหว่างระบบดิจิทัลต่าง ๆ ในโลกยุคใหม่ โดยอิงหลักการ HTTP ที่เข้าใจง่ายและนำไปใช้ได้อย่างยืดหยุ่น ตัวอย่างโค้ดทั้ง Node.js และ PHP ที่แสดงในบทความนี้สามารถนำไปปรับใช้ได้ทันทีหากคุณกำลังพัฒนาเว็บแอปหรือแอปมือถือ