# Thiết kế trải nghiệm người dùng ## Nguyên tắc thiết kế API ### API Design - RESTful APIs là mặc định - Sử dụng HTTP verbs phù hợp (GET, POST, PUT, DELETE) - Định dạng URL: `/api/v{version}/{resource}/{id}` - Versions được chỉ định trong URL path - Query parameters cho filtering, sorting, pagination ### Responses - Sử dụng HTTP status codes một cách nhất quán - Cấu trúc JSON responses: ```json { "status": "success", "data": { ... }, "meta": { "pagination": { ... } } } ``` - Cấu trúc error responses: ```json { "status": "error", "error": { "code": "ERROR_CODE", "message": "Human readable message", "details": { ... } } } ``` ### Authentication - Bearer token trong Authorization header - API key cho các dịch vụ được tin cậy - OAuth 2.0 cho third-party applications ## Documentation - OpenAPI/Swagger spec được tự động sinh - API documentation tích hợp với code - Ví dụ request/response cho mọi endpoint ## Rate Limiting - Rate limits dựa trên IP hoặc user - Headers thông báo limits và remaining requests - Graceful handling khi vượt giới hạn ## Monitoring - Tracking API usage và performance - User behavior analytics - Error tracking và alerting ## Testing - End-to-end API testing - Performance và load testing - Security testing