Về trang chủ
Cơ bản cho Intern
16/05/2026·4 phút đọc

API 101 cho BA "BA không cần code API, nhưng không hiểu API thì rất dễ viết requirement hổng"

API là gì? Giải thích kiểu BA dễ hiểu API là cách các hệ thống giao tiếp với nhau.

API 101 cho BA "BA không cần code API, nhưng không hiểu API thì rất dễ viết requirement hổng"

Bạn viết requirement:

“Khi user bấm Thanh toán, hệ thống xử lý giao dịch.”

Nghe có vẻ ổn.

Nhưng dev sẽ hỏi ngay:

App gửi những data gì lên server?

Server trả về gì nếu thanh toán thành công?

Nếu thanh toán thất bại thì sao?

Nếu Payment Gateway timeout thì xử lý thế nào?

Có tạo order trước hay payment trước?

=> Lúc này bạn mới nhận ra:

Một cái nút trên UI không chỉ là một cái nút.

Đằng sau nó là cả một cuộc “nói chuyện” giữa nhiều hệ thống.

Và cuộc nói chuyện đó thường diễn ra qua API.

API là gì? Giải thích kiểu BA dễ hiểu

API là cách các hệ thống giao tiếp với nhau.

Hiểu đơn giản:

API giống như “người phục vụ” đứng giữa app và hệ thống backend.

User bấm nút trên app

=> App gửi yêu cầu đến backend

=> Backend xử lý

=> Backend trả kết quả về app

=> App hiển thị kết quả cho user

Ví dụ đời thường:

Bạn vào quán gọi món.

Bạn nói:

“Cho tôi 1 ly cà phê sữa đá.”

Người phục vụ nhận yêu cầu

=> chuyển vào bếp/quầy pha chế

=> nhận kết quả

=> mang đồ uống ra cho bạn

Trong hệ thống:

User bấm nút

=> App gửi request

=> API nhận và xử lý

=> Trả response

=> UI hiển thị kết quả

Request là gì?

Request = yêu cầu được gửi đi.

Ví dụ user bấm “Thanh toán”, app có thể gửi lên Payment API:

{

"orderId": "ORD123",

"userId": "U001",

"amount": 500000,

"paymentMethod": "BANK_TRANSFER"

}

BA cần hiểu trong request có:

Field nào được gửi?

Field nào bắt buộc?

Data type là gì?

Giá trị có giới hạn không?

Field nào do user nhập, field nào system tự sinh?

Ví dụ:

orderId: mã đơn hàng

userId: user thực hiện thanh toán

amount: số tiền thanh toán

paymentMethod: phương thức thanh toán

Nếu BA không làm rõ request, dev sẽ phải đoán.

Mà dev đoán thì rất dễ lệch requirement.

Response là gì?

Response = kết quả hệ thống trả về.

Nếu thanh toán thành công, Payment API có thể trả:

{

"status": "SUCCESS",

"transactionId": "TXN789",

"paidAt": "2026-05-16T10:30:00"

}

App nhận response này

=> hiển thị màn hình “Thanh toán thành công”

=> cập nhật trạng thái đơn hàng

=> gửi thông báo cho user

BA cần làm rõ:

Thành công thì trả gì?

UI hiển thị gì?

Status nào được coi là thành công?

Có lưu transaction ID không?

Có gửi notification không?

Error Response là phần Fresher BA hay bỏ quên nhất

Nhiều BA chỉ viết happy flow:

User bấm Thanh toán

=> Thanh toán thành công

=> Done

Nhưng thực tế hệ thống có thể lỗi rất nhiều kiểu:

Số dư không đủ

Thẻ hết hạn

Payment Gateway timeout

Order không tồn tại

User bấm thanh toán 2 lần

Backend lỗi

Network mất kết nối

Vì vậy, BA cần define cả error response.

Ví dụ:

{

"status": "FAILED",

"errorCode": "INSUFFICIENT_BALANCE",

"message": "Số dư không đủ để thực hiện giao dịch"

}

Hoặc:

{

"status": "PENDING",

"errorCode": "PAYMENT_TIMEOUT",

"message": "Giao dịch đang được xử lý. Vui lòng kiểm tra lại sau."

}

Điểm quan trọng:

Không phải lỗi nào cũng hiển thị chung một câu “Có lỗi xảy ra”.

Với user, mỗi lỗi cần cách xử lý khác nhau.

Với system, mỗi lỗi có thể kéo theo logic khác nhau.

Vì sao BA cần hiểu API?

1️⃣ Để viết requirement rõ hơn

Thay vì viết:

“Hệ thống xử lý thanh toán.”

Hãy viết rõ:

  • Input là gì?

  • Output là gì?

  • Success case là gì?

  • Error case là gì?

  • Rule xử lý từng status là gì?


2️⃣ Để làm việc tốt hơn với Dev

Khi hiểu API, bạn sẽ nói chuyện với dev rõ hơn:

  • “Field này required hay optional?”

  • “Response có trả transactionId không?”

  • “Nếu timeout thì status là PENDING hay FAILED?”

  • “Error code này FE cần map message như thế nào?”

=> Dev sẽ thấy bạn hiểu system, không chỉ viết mô tả UI.


3️⃣ Để test đúng hơn

BA hiểu API sẽ biết:

  • Không chỉ test trên màn hình

  • Cần check data request/response

  • Cần test lỗi

  • Cần verify trạng thái sau khi API trả kết quả

Ví dụ UI báo “Thanh toán thành công” nhưng backend trả PENDING
=> Đây là bug nghiêm trọng.


4️⃣ Để tránh requirement bị hổng

Một requirement API bị hổng thường thiếu:

  • Required field

  • Validation rule

  • Error response

  • Timeout handling

  • Retry logic

  • Status mapping

  • Data lưu vào DB

  • Notification sau xử lý

Đây là những thứ nếu không define sớm, đến UAT mới lòi ra rất đau.

Bài viết liên quan