โหมดมืด
API Design
ส่วนหนึ่งของ Beginner Book | เสริมจาก Spring Boot บทที่ 01
หนังสือเล่มนี้พาคุณไปถึงไหน
อ่านจบ + ทำ checkpoint หมด คุณจะ:
- เข้าใจ "API ดี" vs "API ห่วย" — ออกแบบเองได้
- ออกแบบ REST API ที่ scalable + maintainable
- จัดการ versioning, pagination, filtering, error format
- ทำ documentation อัตโนมัติด้วย OpenAPI
- เลือกใช้ REST vs GraphQL vs gRPC ได้ถูก use case
- รักษาความปลอดภัย: auth, rate limit, CORS
- เข้าใจ API Gateway + microservices communication
หนังสือนี้ออกแบบมาให้ใคร
✅ Backend developer ที่ทำ API แต่ไม่แน่ใจว่าถูกหลักไหม
✅ Frontend ที่อยากเข้าใจฝั่ง backend ดีขึ้น
✅ ทีมเล็กที่อยากออกแบบ API ที่อยู่กับเราได้นาน
อ่านก่อน — พื้นฐานที่ควรรู้
ควรรู้ HTTP / URL / JSON ระดับพื้นฐานก่อน — ถ้ายังไม่ชัวร์ ไม่เป็นไร บทที่ 0 จะ recap ให้ พร้อมลิงก์ไป MDN
Glossary ตัวย่อในสารบัญ (อ่านยังไง)
ตัวย่อที่จะเจอในสารบัญด้านล่าง — ใส่คำอ่านไว้กันมึน:
| ตัวย่อ | คำอ่าน | ย่อมาจาก/ความหมาย |
|---|---|---|
| REST | เรสต์ | Representational State Transfer — สไตล์ออกแบบ API ที่นิยมที่สุด |
| URI | ยู-อาร์-ไอ | Uniform Resource Identifier — ที่อยู่ของ resource |
| HTTP method | เอช-ที-ที-พี-เม็ธ-อ็อด | GET/POST/PUT/PATCH/DELETE |
| status code | สเต-ตัส-โค้ด | 200/404/500 ฯลฯ |
| HATEOAS | ฮา-ทิ-โอ-เอส | Hypermedia As The Engine Of Application State — ใส่ลิงก์ action ต่อใน response |
| idempotent | ไอ-เด็ม-โพ-เทนต์ | เรียกซ้ำได้ผลเดิม |
| RFC 9457 | อาร์-เอฟ-ซี-เก้า-สี่-ห้า-เจ็ด | Problem Details for HTTP APIs (ปี 2023, แทนที่ RFC 7807) |
| OAuth2 | โอ-ออธ-ทู | Open Authorization v2 — มาตรฐาน auth/token |
| JWT | เจ-ดับ-เบิล-ยู-ที / "จ็อต" | JSON Web Token |
| CORS | คอร์ส | Cross-Origin Resource Sharing — browser policy |
| OpenAPI 3.1 | โอ-เพ่น-เอ-พี-ไอ-สาม-จุด-หนึ่ง | spec มาตรฐานสำหรับ REST (เดิมชื่อ Swagger) |
| GraphQL | กราฟ-คิว-แอล | Query language สำหรับ API |
| gRPC | จี-อาร์-พี-ซี | Google Remote Procedure Call |
บทเรียน
| # | บท | สอนอะไร |
|---|---|---|
| 0 | API คืออะไร | API คืออะไร, ทำไมต้องดี, REST/GraphQL/gRPC overview |
| 1 | REST Design ลึก | Resource, URI, HTTP method, status code, HATEOAS, idempotent |
| 2 | Pagination, Filter, Sort, Search | offset/keyset, query param convention, search |
| 3 | Versioning + Error Handling | URI/header versioning, error format, problem details (RFC 9457 — formerly RFC 7807) |
| 4 | Auth + Security + Rate Limit | OAuth2, API key, JWT, CORS, rate limit, idempotency key |
| 5 | OpenAPI + Documentation | OpenAPI 3.1, Swagger UI, code-gen, contract-first |
| 6 | GraphQL + gRPC | when to use, schema design, basic implementation |
หมายเหตุเรื่องโค้ด: ตัวอย่างโค้ดในเล่มนี้ส่วนใหญ่เป็น Java/Spring Boot (มี TypeScript/React บ้าง) ถ้าคุณยังไม่คุ้นภาษาเหล่านี้ ไม่เป็นไร — อ่านเอาแค่ "แนวคิด" ก็พอ เพราะหลักการออกแบบ API ใช้ได้กับทุกภาษา
วิธีอ่านที่แนะนำ
- บทที่ 0-3 = REST core — อ่านเรียง
- บทที่ 4 = security — ทำพร้อม Spring Boot 03 (JWT)
- บทที่ 5 = documentation — ดูตอนทำ API ใหม่
- บทที่ 6 = optional — ดูเมื่อจำเป็น