พื้นฐาน HTTP และ REST
โดยแก่นแท้แล้ว REST API คือชุดของ resource ที่เราโต้ตอบด้วยผ่าน HTTP ก่อนจะลงมือออกแบบ ควรทำความเข้าใจสองเรื่องนี้ให้ชัดก่อน นั่นคือ ข้อความ HTTP ไหลเวียนระหว่าง client กับ server อย่างไรจริง ๆ และคำว่า “RESTful” นั้นผูกมัดเราไว้กับอะไรกันแน่
วงจร request/response
หัวข้อที่มีชื่อว่า “วงจร request/response”ทุกการโต้ตอบคือ client ส่ง request ออกไปและ server ส่ง response กลับมา request จะระบุ method และ path ส่วน server จะทำงานบางอย่างแล้วตอบกลับด้วย status code และ (โดยปกติ) body
sequenceDiagram participant C as Client participant S as API Server C->>S: GET /articles/42 S->>S: look up resource S-->>C: 200 OK + JSON body
การไป-กลับแบบ stateless นี้คือหน่วยพื้นฐานของทุกอย่างที่จะตามมา API ที่ออกแบบมาดีจะทำให้แต่ละ request อธิบายตัวเองได้ครบถ้วน method บอกว่าเราต้องการทำอะไร path บอกว่าทำกับอะไร และ status code บอกว่าผลเป็นอย่างไร
คอร์สนี้ครอบคลุมอะไรบ้าง
หัวข้อที่มีชื่อว่า “คอร์สนี้ครอบคลุมอะไรบ้าง”คอร์สนี้สร้างการออกแบบ REST API ตั้งแต่พื้นฐาน พร้อมตัวอย่าง TypeScript ที่รันได้จริง:
- พื้นฐาน HTTP และ REST — ข้อความ, method, status code และข้อจำกัดของ REST (คุณอยู่ที่นี่)
- การออกแบบ Resource และ URI — จำลอง resource และตั้งชื่อ URI ให้กับ resource เหล่านั้น
- Method, CRUD และ Idempotency — การจับคู่ operation เข้ากับ method อย่างปลอดภัย
- Status Code และ Error — การเลือก code และการออกแบบ body ของ error
- การสืบค้น Collection — pagination, filtering, sorting, การเลือก field
- Versioning และ Caching — พัฒนา API ให้เติบโตต่อได้และเร่งความเร็ว
- Security — authentication, authorization, CORS และ rate limiting
- เอกสาร, การทดสอบ และการสร้าง — OpenAPI, การทดสอบ และ implementation ที่ใช้งานได้จริง