FresherKỹ thuậtThiết kế API
Những HTTP header nào quan trọng nhất trong request và response của API?
Thử trả lời trước
Đáp án mẫu
Header chứa metadata của message, để body chỉ tập trung vào dữ liệu. Đây là những header mà người thiết kế API dùng hằng ngày.
Request header
Content-Type: định dạng của body bạn gửi, nhưapplication/json.Accept: các định dạng client đọc được.Authorization: thông tin xác thực, ví dụBearer <token>.Idempotency-Key: cho phép client retryPOSTan toàn.If-None-MatchvàIf-Match: đọc và ghi có điều kiện vớiETag.
Response header
Content-Type: định dạng của response.Location: URL của resource mới sau201, hoặc của job sau202.Cache-ControlvàETag: caching và validation.Retry-AftervàRateLimit-*: hướng dẫn về throttling.WWW-Authenticate: gửi cùng401để nói cách xác thực.Link: link phân trang.
Để debug, trả về request id như X-Request-Id, hoặc dùng header traceparent của W3C để bộ phận hỗ trợ tìm được lời gọi trong log.
Header dùng cho metadata. Dữ liệu client đang làm việc thì thuộc về body.
Ý chính
- Content-Type và Accept thương lượng định dạng
- Authorization mang thông tin xác thực
- Location, ETag và Cache-Control mô tả resource và caching
- Header request id hỗ trợ debug
Câu hỏi nối tiếp thường gặp
- Header WWW-Authenticate dùng để làm gì?
- Bạn truyền trace id giữa các service như thế nào?
Lỗi thường gặp
- Đặt dữ liệu nghiệp vụ vào custom header
- Quên Content-Type trong response