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 ในชีวิตประจำวัน:

ประเภทของ 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

ประเภทFormatSpeedความนิยมเหมาะกับ
RESTJSONเร็วสูงมากทั่วไป
GraphQLJSONเร็วสูงแอปซับซ้อน
gRPCProtobufเร็วมากปานกลางMicroservices
SOAPXMLช้าลดลงEnterprise
WebSocketAnyReal-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 Requestrequest ไม่ถูกต้องข้อมูลที่ส่งมาผิด format
401 Unauthorizedไม่ได้ loginไม่มี token หรือ token หมดอายุ
403 Forbiddenไม่มีสิทธิ์login แล้วแต่ไม่มีสิทธิ์เข้าถึง
404 Not Foundไม่พบข้อมูลURL ผิดหรือข้อมูลถูกลบแล้ว
429 Too Many Requestsเรียกบ่อยเกินไปถูก rate limit
500 Internal Server Errorserver มีปัญหา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:

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/เดือน/คน)