1. API Error Handling là gì?

API Error Handling là cách API phát hiện, xử lý và trả về lỗi một cách nhất quán khi request không thể thực hiện thành công.

Ví dụ:

Client
  ↓
API
  ↓
Có lỗi?
 ├── Không → Success Response
 └── Có → Error Handling → Error Response mục tiêu của API error giúp không để api bị crash, trả đúng trạng thái http codes cho biết người dùng biết đang xảy ra lỗi gì giúp không làm lộ thông tin nhạy cảm.

2. Các loại lỗi thường gặp

lỗi thứ nhất là validation error gửi dữ liệu không hợp lệ.

POST /users

email = "abc"
age = -1

→ 400 Bad Request hoặc 422 Unprocessable Content.

lỗi thứ hai Authentication Error lỗi xác thực không thành công

→ 401 Unauthorized.

lỗi thứ ba Authorization Error lỗi phân quyền thất  bại

→ 403 Forbidden.

3. Exception Handling

Trong Backend, lỗi thường được biểu diễn bằng Exception.

Ví dụ:

if (user == null) {
    throw new UserNotFoundException();
}

Thay vì mỗi Controller tự xử lý:

try {
    ...
} catch (...) {
    ...
}

có thể dùng Global Exception Handler để tập trung xử lý lỗi.

Ý tưởng:

Service
   ↓
throw Exception
   ↓
Global Exception Handler
   ↓
HTTP Error Response

4. Error Handling tốt cần đảm bảo

1. Status Code đúng

404 → Not Found
409 → Conflict
500 → Server Error

2. Response nhất quán

Các API nên có cùng cấu trúc error response.

3. Message rõ ràng

Client phải biết vấn đề nằm ở đâu nếu lỗi có thể sửa được.

4. Không leak thông tin

Không trả stack trace, SQL error hoặc thông tin nội bộ.

5. Log lỗi ở Server

Đặc biệt với lỗi 5xx.

5. Validation → Exception → Error Response

Có thể nhìn toàn bộ flow như sau:

Request
   ↓
Validation
   ↓
Business Logic
   ↓
Có lỗi?
   ↓
throw Exception
   ↓
Global Exception Handler
   ↓
HTTP Status Code + JSON Error
   ↓
Client 

có thể nhìn vào flow này và trả lời như sau: khi client gửi request sẽ đưa vào validation để kiểm tra dữ liệu 
đưa vào có đúng không có lỗi hay không sau đó sẽ chuyển sang kiểm tra logic nghiệp vụ của request đó sau đó nếu 
có lỗi sẽ chuyển vào lỗi exception đưa ra sau đó sát định lỗi đó cuối cùng đưa ra trạng thái của lỗi đó và xuất 
ra thông báo lỗi json error.

6. Một số phương pháp khi gặp lỗi API trong REST API

  1. sử dụng trạng thái http đúng cách. REST API phụ thuộc rất nhiều vào http codes để thể hiện lỗi hoặc các hành động thông qua http
  2. cung cấp đầy đủ thông báo lỗi REST có bảng chất là không trạng thái điều này có nghĩa là tất cả các thông báo lỗi phải cung cấp các thông tin cần thiết để khách hành hiểu mà không dựa vào ngữ cảnh.
  3. sử dụng các định dạng phản hồi được chuẩn hóa duy trì một thông báo nhất quán cho các thông báo lỗi ví dụ REST API hỗ trợ các trường thông báo như error, messege,code.

Bài viết khác

Series 7 — Web Quality – Engineering :Testing – Unit Testing, Integration Testing, Web Performance – Core Web Vitals, Code Splitting, Lazy Loading

Series 7 — Web Quality – Engineering Bài 3: Testing – Unit Testing, Integration Testing và End-to-End Testing trong ứng dụng web 1. Vì sao ứng dụng web cần Testing? Trong quá trình phát triển Frontend, chúng ta thường kiểm tra ứng dụng bằng cách chạy website trên trình duyệt, nhấn vào các nút, nhập […]

Series 7 — Web Quality – Engineering : Authentication & Authorization

Series 7 — Web Quality – Engineering Bài 1: Authentication & Authorization – Xác thực và phân quyền trong ứng dụng web 1. Mở đầu Khi xây dựng một ứng dụng web có chức năng đăng nhập, chúng ta thường nghĩ rằng chỉ cần tạo biểu mẫu nhập email, mật khẩu và kiểm tra thông […]

Series 6 – Next.js Advanced – Production: Next.js Build & Deployment

Series 6 – Next.js Advanced & Production Bài 5: Next.js Build & Deployment – Từ mã nguồn đến môi trường Production 1. Mở đầu Trong quá trình phát triển một ứng dụng web, việc chạy thành công trên máy tính cá nhân chưa có nghĩa là ứng dụng đã sẵn sàng để đưa đến người […]

Series 6 – Next.js Advanced – Production: Next.js Internationalized Routing Next.js Static Export

Series 6 – Next.js Advanced & Production   Bài 3: Next.js Internationalized Routing – Tổ chức URL cho website đa ngôn ngữ 1. Mở đầu Sau khi xây dựng cơ chế dịch nội dung và định dạng theo locale, ứng dụng cần một cách để người dùng truy cập đúng phiên bản ngôn ngữ. Ví […]

Series 6 – Next.js Advanced & Production: Metadata & SEO, Internationalization (i18n) & Localization (l10n)

Series 6 – Next.js Advanced & Production Bài 1: Metadata & SEO trong Next.js – Tối ưu thông tin và khả năng hiển thị trên công cụ tìm kiếm 1. Mở đầu Khi xây dựng một website, việc hoàn thiện giao diện và chức năng mới chỉ là một phần của quá trình phát triển. […]

Series 5 – Next.js Fundamentals: CSR, SSR, SSG, ISR và cách lựa chọn

Series 5 – Next.js Fundamentals   Bài 7 : CSR, SSR, SSG và ISR – Các chiến lược Rendering trong Next.js 1. Mở đầu Khi xây dựng một website bằng React, chúng ta thường tập trung vào việc tạo component, quản lý state và hiển thị giao diện trên trình duyệt. Tuy nhiên, khi ứng dụng […]

Leave a Reply

Your email address will not be published. Required fields are marked *