API คืออะไร REST API เบื้องต้น คู่มือฉบับสมบูรณ์ 2026
SiamCafe.net Since 1997 | 19/02/2026
สารบัญ
API คืออะไร
API (Application Programming Interface) คือช่องทางที่ให้ซอฟต์แวร์ 2 ตัวสื่อสารกัน เปรียบเหมือนพนักงานเสิร์ฟในร้านอาหาร: คุณ (client) สั่งอาหาร (request) ผ่านพนักงานเสิร์ฟ (API) ไปยังห้องครัว (server) แล้วพนักงานเสิร์ฟนำอาหาร (response) กลับมาให้คุณ
ในปี 2026 API เป็นหัวใจของทุกระบบ IT ตั้งแต่เว็บไซต์ แอปมือถือ IoT จนถึง AI ถ้าคุณทำงาน IT ไม่ว่าจะเป็น Developer, SysAdmin, หรือ DevOps คุณต้องเข้าใจ API
ตัวอย่าง API ในชีวิตประจำวัน:
- Google Maps API: แอปเรียกรถ (Grab, Bolt) ใช้ Google Maps API แสดงแผนที่และคำนวณเส้นทาง
- Payment API: ร้านค้าออนไลน์ใช้ Stripe/PayPal API รับชำระเงิน
- Social Login: เว็บไซต์ใช้ Facebook/Google API ให้ login ด้วย social account
- Weather API: แอปพยากรณ์อากาศดึงข้อมูลจาก OpenWeatherMap API
ประเภทของ API
1. REST API: ใช้ HTTP protocol ส่งข้อมูลเป็น JSON เป็นที่นิยมมากที่สุด (80%+ ของ API ทั้งหมด) ง่าย เร็ว stateless
2. GraphQL: พัฒนาโดย Facebook ให้ client กำหนดได้ว่าต้องการข้อมูลอะไร ลด over-fetching เหมาะกับแอปที่มีข้อมูลซับซ้อน
3. gRPC: พัฒนาโดย Google ใช้ Protocol Buffers เร็วกว่า REST 2-10 เท่า เหมาะกับ microservices ที่ต้องการ performance สูง
4. SOAP: เก่าแก่ที่สุด ใช้ XML ซับซ้อน แต่มี security สูง ยังใช้ในธนาคารและองค์กรใหญ่
5. WebSocket: สื่อสารแบบ real-time สองทาง เหมาะกับ chat, live data, gaming
| ประเภท | Format | Speed | ความนิยม | เหมาะกับ |
|---|---|---|---|---|
| REST | JSON | เร็ว | สูงมาก | ทั่วไป |
| GraphQL | JSON | เร็ว | สูง | แอปซับซ้อน |
| gRPC | Protobuf | เร็วมาก | ปานกลาง | Microservices |
| SOAP | XML | ช้า | ลดลง | Enterprise |
| WebSocket | Any | Real-time | ปานกลาง | Chat, Live |
REST API คืออะไร
REST (Representational State Transfer) เป็นรูปแบบการออกแบบ API ที่ Roy Fielding คิดขึ้นในปี 2000 มีหลักการสำคัญ:
1. Stateless: แต่ละ request เป็นอิสระจากกัน server ไม่เก็บ state ของ client ทำให้ scale ได้ง่าย
2. Client-Server: แยก client (frontend) กับ server (backend) ออกจากกัน พัฒนาแยกกันได้
3. Uniform Interface: ใช้ URL เป็น resource identifier ใช้ HTTP methods (GET, POST, PUT, DELETE) เป็น actions
4. Cacheable: response สามารถ cache ได้ ลด load ของ server
ตัวอย่าง REST API URL:
GET /api/users # ดู users ทั้งหมด GET /api/users/123 # ดู user ID 123 POST /api/users # สร้าง user ใหม่ PUT /api/users/123 # แก้ไข user ID 123 DELETE /api/users/123 # ลบ user ID 123
HTTP Methods
GET: ดึงข้อมูล (Read) ไม่เปลี่ยนแปลงข้อมูลบน server ปลอดภัย cache ได้
POST: สร้างข้อมูลใหม่ (Create) ส่งข้อมูลใน request body ไม่ idempotent (เรียกซ้ำจะสร้างข้อมูลซ้ำ)
PUT: แก้ไขข้อมูลทั้งหมด (Update) ส่งข้อมูลทั้ง object idempotent (เรียกซ้ำผลเหมือนเดิม)
PATCH: แก้ไขข้อมูลบางส่วน (Partial Update) ส่งเฉพาะ field ที่ต้องการแก้
DELETE: ลบข้อมูล (Delete) idempotent
Status Codes ที่ต้องรู้
| Code | ความหมาย | ใช้เมื่อ |
|---|---|---|
| 200 OK | สำเร็จ | GET, PUT, PATCH สำเร็จ |
| 201 Created | สร้างสำเร็จ | POST สร้างข้อมูลใหม่สำเร็จ |
| 204 No Content | สำเร็จ ไม่มีข้อมูลส่งกลับ | DELETE สำเร็จ |
| 400 Bad Request | request ไม่ถูกต้อง | ข้อมูลที่ส่งมาผิด format |
| 401 Unauthorized | ไม่ได้ login | ไม่มี token หรือ token หมดอายุ |
| 403 Forbidden | ไม่มีสิทธิ์ | login แล้วแต่ไม่มีสิทธิ์เข้าถึง |
| 404 Not Found | ไม่พบข้อมูล | URL ผิดหรือข้อมูลถูกลบแล้ว |
| 429 Too Many Requests | เรียกบ่อยเกินไป | ถูก rate limit |
| 500 Internal Server Error | server มีปัญหา | bug ใน server code |
JSON คืออะไร
JSON (JavaScript Object Notation) เป็นรูปแบบข้อมูลที่ REST API ใช้ส่งข้อมูล:
{
"id": 123,
"name": "สมชาย",
"email": "somchai@example.com",
"age": 30,
"is_active": true,
"roles": ["admin", "editor"],
"address": {
"city": "Bangkok",
"country": "Thailand"
}
}
ข้อดีของ JSON: อ่านง่าย เขียนง่าย ขนาดเล็กกว่า XML รองรับทุกภาษาโปรแกรม
ทดสอบ API ด้วย curl และ Postman
curl (command line):
# GET
curl https://api.example.com/users
# POST
curl -X POST https://api.example.com/users \
-H "Content-Type: application/json" \
-d '{"name": "somchai", "email": "s@example.com"}'
# PUT
curl -X PUT https://api.example.com/users/123 \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{"name": "somchai updated"}'
# DELETE
curl -X DELETE https://api.example.com/users/123 \
-H "Authorization: Bearer YOUR_TOKEN"
Postman: เครื่องมือ GUI สำหรับทดสอบ API ใช้งานง่ายกว่า curl มี collection, environment, test scripts ดาวน์โหลดฟรีที่ postman.com
สร้าง REST API ด้วย Python Flask
from flask import Flask, jsonify, request
app = Flask(__name__)
# ข้อมูลตัวอย่าง
users = [
{"id": 1, "name": "สมชาย", "email": "s@example.com"},
{"id": 2, "name": "สมหญิง", "email": "w@example.com"},
]
@app.route("/api/users", methods=["GET"])
def get_users():
return jsonify(users)
@app.route("/api/users/<int:user_id>", methods=["GET"])
def get_user(user_id):
user = next((u for u in users if u["id"] == user_id), None)
if user:
return jsonify(user)
return jsonify({"error": "User not found"}), 404
@app.route("/api/users", methods=["POST"])
def create_user():
data = request.get_json()
new_user = {
"id": len(users) + 1,
"name": data["name"],
"email": data["email"]
}
users.append(new_user)
return jsonify(new_user), 201
if __name__ == "__main__":
app.run(debug=True, port=5000)
อ่านเพิ่มเติม: Python Automation สำหรับงาน IT | Docker เบื้องต้น | สร้าง EA ด้วย ChatGPT | Passive Income จาก AI
Authentication และ Security
1. API Key: ง่ายที่สุด ส่ง key ใน header ทุก request เหมาะกับ API ที่ไม่ต้องการ security สูง
curl -H "X-API-Key: your_api_key" https://api.example.com/data
2. Bearer Token (JWT): ใช้มากที่สุด login แล้วได้ token กลับมา ส่ง token ใน header ทุก request token มีอายุ (เช่น 1 ชั่วโมง)
curl -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..." https://api.example.com/data
3. OAuth 2.0: ใช้สำหรับ third-party access เช่น "Login with Google" ซับซ้อนกว่าแต่ปลอดภัยกว่า
Security Best Practices:
- ใช้ HTTPS เสมอ (ไม่ใช้ HTTP)
- ตั้ง Rate Limiting ป้องกัน DDoS
- Validate input ทุก request
- ไม่ส่ง sensitive data ใน URL (ใช้ body แทน)
- ตั้ง CORS ให้ถูกต้อง
Best Practices
1. ใช้ noun ไม่ใช่ verb ใน URL: /api/users (ถูก) ไม่ใช่ /api/getUsers (ผิด)
2. ใช้ plural: /api/users ไม่ใช่ /api/user
3. Versioning: /api/v1/users, /api/v2/users
4. Pagination: /api/users?page=1&limit=20
5. Error Response ที่ดี: ส่ง error code + message + details
6. Documentation: ใช้ Swagger/OpenAPI สร้าง API docs อัตโนมัติ
สรุป
API เป็นพื้นฐานที่คน IT ทุกคนต้องรู้ในปี 2026 REST API เป็นที่นิยมมากที่สุด ใช้ HTTP methods + JSON เรียนรู้ได้เร็ว เริ่มจากทดสอบ API ที่มีอยู่ด้วย curl หรือ Postman แล้วค่อยลองสร้าง API เอง
คำถามที่พบบ่อย (FAQ)
Q: API กับ Web Service ต่างกันยังไง?
A: Web Service เป็น API ประเภทหนึ่งที่ทำงานผ่าน web (HTTP) API กว้างกว่า รวมถึง library API, OS API, hardware API ด้วย ในปัจจุบันคนมักใช้คำว่า API หมายถึง Web API
Q: REST กับ GraphQL เลือกอะไรดี?
A: REST เหมาะกับ API ทั่วไปที่มีโครงสร้างข้อมูลไม่ซับซ้อน GraphQL เหมาะกับแอปที่มีข้อมูลซับซ้อนและ client ต้องการเลือกข้อมูลเอง ถ้าไม่แน่ใจ เริ่มจาก REST
Q: ต้องเรียน API นานแค่ไหน?
A: พื้นฐาน (GET, POST, JSON, Status Codes) เรียนได้ใน 1-2 วัน สร้าง API เอง 1-2 สัปดาห์ ระดับ production (auth, security, testing) 1-2 เดือน
Q: API Key กับ JWT ต่างกันยังไง?
A: API Key เป็น string คงที่ ไม่มีอายุ ง่ายแต่ไม่ปลอดภัยมาก JWT เป็น token ที่มีข้อมูล user อยู่ข้างใน มีอายุ ปลอดภัยกว่า เหมาะกับ API ที่ต้องรู้ว่าใครเรียก
Q: Postman ฟรีไหม?
A: Postman มี free plan ที่ใช้งานได้เพียงพอสำหรับคนเดียว รองรับ collection, environment, test scripts ถ้าทำงานเป็นทีม อาจต้องใช้ paid plan ($12/เดือน/คน)