Mục tiêu bài lab
Sau khi hoàn thành bài thực hành này, bạn sẽ có khả năng:
- Sử dụng lại Collection và Environment trong Postman.
- Đọc và phân tích thông tin lỗi từ API Response.
- Xác định nguyên nhân khiến HTTP Request thất bại.
- Khắc phục các lỗi phổ biến khi làm việc với REST API.
Đây là kỹ năng gần như bắt buộc đối với một kỹ sư DevNet bởi trong môi trường thực tế, lỗi API xảy ra hàng ngày và việc đọc được thông báo lỗi sẽ giúp tiết kiệm rất nhiều thời gian troubleshooting.
Mô hình bài lab
Trong bài lab này chúng ta tiếp tục sử dụng:
- Postman Client
- API Server đã sử dụng ở Lab 8
- Collection và Environment đã tạo trước đó
Luồng hoạt động:
Postman
|
HTTP Request
|
API Server
|
HTTP Response (Success hoặc Error)
Bước 1: Import Collection và Environment
Trong thực tế, kỹ sư DevNet rất ít khi tạo request từ đầu cho từng API.
Thông thường đội dự án sẽ chia sẻ sẵn:
- Collection
- Environment
- API Documentation
Do đó việc đầu tiên là import các file này vào Postman.
Chọn:
Import
sau đó import:
- Collection JSON
- Environment JSON
Tại sao phải sử dụng Environment?
Khi làm việc với API chúng ta thường phải sử dụng nhiều giá trị như:
IP Address
Username
Password
Token
Base URL
Port
Nếu phải gõ thủ công mỗi lần sẽ rất dễ sai.
Ví dụ:
{{base_url}}
{{token}}
{{username}}
Khi cần thay đổi IP hoặc Token chúng ta chỉ sửa trong Environment thay vì sửa hàng chục request khác nhau.
Đây là cách mà hầu hết các dự án DevNet thực tế đều triển khai.
Tại sao phải sử dụng Collection?
Collection giúp:
- Gom nhóm các API cùng chức năng.
- Tái sử dụng request.
- Chạy automation test.
- Chia sẻ giữa các thành viên trong nhóm.
Ví dụ:
Authentication
Get Devices
Get Interfaces
Create VLAN
Delete VLAN
Tất cả đều có thể đặt trong cùng một Collection.
Bước 2: Thực hiện Request có lỗi
Tiến hành gửi request chứa dữ liệu JSON sai cú pháp.
Ví dụ:
{
"name" = "VNPRO"
}
Sau khi nhấn:
Send
API Server sẽ trả về lỗi.
Bước 3: Phân tích Response trả về
Đây là phần quan trọng nhất của bài lab.
Khi request thất bại, điều đầu tiên cần làm là đọc phần:
Response Body
Status Code
Details
Trong bài lab này Postman sẽ hiển thị thông báo lỗi chỉ ra vị trí sai cú pháp.
Thông thường bạn sẽ thấy dạng:
JSON parse error
Unexpected token '='
hoặc:
Expecting ':' delimiter Nguyên nhân lỗi
JSON sử dụng:
:
để phân tách giữa:
key và value
Ví dụ đúng:
{
"name": "VNPRO"
}
Ví dụ sai:
{
"name" = "VNPRO"
}
Đây là lỗi mà hầu như ai mới học API cũng từng gặp.
Bước 4: Kiểm tra vị trí lỗi trong Body
Một điểm rất hữu ích của Postman là nó sẽ đánh dấu chính xác dòng bị lỗi.
Ví dụ:
Line 3
sẽ xuất hiện dấu:
X
ở bên trái.
Điều này giúp chúng ta không phải dò toàn bộ JSON.
Các lỗi HTTP Request thường gặp trong DevNet 1. Thiếu dấu phẩy giữa các cặp key-value
Sai:
{
"name": "VNPRO"
"city": "HCM"
}
Đúng:
{
"name": "VNPRO",
"city": "HCM"
}
2. URL bị dư dấu "/"
Sai:
Đúng:
Một số API Server vẫn chấp nhận lỗi này nhưng nhiều hệ thống sẽ trả về:
404 Not Found
3. Sử dụng sai HTTP Method
Ví dụ:
API yêu cầu:
POST
nhưng lại gửi:
GET
hoặc:
PUT
Kết quả thường nhận được:
405 Method Not Allowed
Ví dụ:
GET /api/users
trong khi API chỉ hỗ trợ:
POST /api/users
4. Thiếu Authentication Token
Đây là lỗi xảy ra nhiều nhất khi làm việc với Cisco DNA Center API.
Ví dụ:
401 Unauthorized
Nguyên nhân:
- Token hết hạn.
- Chưa truyền Header Authorization.
- Sai Bearer Token.
Ví dụ API yêu cầu:
Content-Type: application/json
nhưng request gửi:
text/plain
Kết quả:
415 Unsupported Media Type
Bước 5: Khắc phục lỗi
Sau khi xác định được nguyên nhân, sửa lại request theo đúng cú pháp JSON và gửi lại.
Ví dụ:
{
"name": "VNPRO"
}
Khi thực hiện thành công, Postman sẽ trả về:
200 OK
hoặc:
201 Created Kinh nghiệm thực tế khi làm DevNet
Kiểm tra theo thứ tự sau khi request bị lỗi:
- Kiểm tra URL.
- Kiểm tra HTTP Method.
- Kiểm tra Header.
- Kiểm tra Token.
- Kiểm tra Body JSON.
- Đọc kỹ Response trả về.
Khoảng 80% lỗi API thường nằm trong các nguyên nhân trên.