Skip to content

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

บทเรียน

#บทสอนอะไร
0API คืออะไรAPI คืออะไร, ทำไมต้องดี, REST/GraphQL/gRPC overview
1REST Design ลึกResource, URI, HTTP method, status code, HATEOAS, idempotent
2Pagination, Filter, Sort, Searchoffset/keyset, query param convention, search
3Versioning + Error HandlingURI/header versioning, error format, problem details (RFC 9457 — formerly RFC 7807)
4Auth + Security + Rate LimitOAuth2, API key, JWT, CORS, rate limit, idempotency key
5OpenAPI + DocumentationOpenAPI 3.1, Swagger UI, code-gen, contract-first
6GraphQL + gRPCwhen to use, schema design, basic implementation

หมายเหตุเรื่องโค้ด: ตัวอย่างโค้ดในเล่มนี้ส่วนใหญ่เป็น Java/Spring Boot (มี TypeScript/React บ้าง) ถ้าคุณยังไม่คุ้นภาษาเหล่านี้ ไม่เป็นไร — อ่านเอาแค่ "แนวคิด" ก็พอ เพราะหลักการออกแบบ API ใช้ได้กับทุกภาษา

วิธีอ่านที่แนะนำ

  1. บทที่ 0-3 = REST core — อ่านเรียง
  2. บทที่ 4 = security — ทำพร้อม Spring Boot 03 (JWT)
  3. บทที่ 5 = documentation — ดูตอนทำ API ใหม่
  4. บทที่ 6 = optional — ดูเมื่อจำเป็น

← กลับสารบัญหลัก