1. API Validation là gì?

API Validation là quá trình kiểm tra dữ liệu mà Client gửi lên API có đúng định dạng, đúng kiểu dữ liệu và hợp lệ theo business rule hay không trước khi xử lý.

Ví dụ Client gửi:

{
  "name": "",
  "age": -5,
  "email": "abc"
}

API cần kiểm tra:

  • name có được để trống không?
  • age có phải số hợp lệ không?
  • age có lớn hơn 0 không?
  • email có đúng định dạng không?

Nếu dữ liệu không hợp lệ → API trả lỗi thay vì tiếp tục xử lý.

2. Vì sao cần Validation?

Validation giúp:

  • Ngăn dữ liệu sai đi vào hệ thống.
  • Tránh lỗi khi xử lý hoặc lưu Database.
  • Đảm bảo dữ liệu nhất quán.
  • Phản hồi lỗi rõ ràng cho Client.
  • Giảm các lỗi phát sinh ở những tầng phía sau.
  • Tăng độ an toàn cho API.

Có thể hiểu đơn giản:

Client
  ↓
Request
  ↓
Validation
  ↓
Dữ liệu hợp lệ?
  ├── Không → Trả lỗi
  │
  └── Có
       ↓
    Business Logic
       ↓
    Database

3. Validation thường kiểm tra những gì?

validation thường kiểm tra field bắt buộc phải có

{
  "name": "Nguyen Van A"
}
kiểm tra không được rỗng
null
""
"   "

Ví dụ:

@NotBlank
private String name;
@noteBlank thường dùng khi String không được null không được rỗng và không chứa khoản trắng

kiểm tra về độ dài của ky tự.

Ví dụ username phải từ 3–20 ký tự:

@Size(min = 3, max = 20)
private String username;

4. Validation khác Business Rule như thế nào?

validation sẽ kiểm tra dữ liệu đầu và có khớp và đúng hay không.

còn Business Rule là kiểm tra logic nghiệp vụ

Ví dụ:

User phải đủ 18 tuổi mới được đăng ký.
Email không được trùng với tài khoản đã tồn tại.
Sản phẩm chỉ được đặt nếu còn hàng.
User chỉ được hủy đơn hàng khi đơn đang ở trạng thái PENDING.

5. Validation với REST API

Ví dụ API:

POST /users

Request:

{
  "name": "",
  "email": "abc",
  "age": 15
}

API có thể trả:

400 Bad Request

với:

{
  "message": "Validation failed",
  "errors": {
    "name": "Name is required",
    "email": "Invalid email",
    "age": "Age must be at least 18"
  }
}

6. Tóm lại

validation là kiểm tra dữ liệu đưa vào có đúng yêu cầu cơ bản hay không nếu đúng sẽ xử lý tiếp không sẽ xuất thông báo lỗi. việc check lỗi đầu vào bằng validation sẽ giúp giảm request rác không cần thiết.

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 *