Bạn đã thấy một ứng dụng gửi yêu cầu trong trình duyệt: yêu cầu hoạt động, dữ liệu nằm ngay trong tab Network, nhưng bạn vẫn phải nhập lại URL, header và JSON body nếu muốn tái sử dụng nó. Tệp HAR giúp biến lưu lượng truy cập đã quan sát thành các endpoint có thể lưu, mock và kiểm thử.
Khoảng cách giữa “lưu lượng truy cập tôi nhìn thấy” và “endpoint tôi có thể tái sử dụng” được thu hẹp bằng HAR. Trình duyệt đã ghi lại request và response của phiên làm việc; khi nhập bản ghi này vào Apidog, mỗi request có thể trở thành một endpoint trong project. Bài viết này hướng dẫn quy trình: xuất HAR từ Chrome DevTools, nhập với các tùy chọn phù hợp và dọn dẹp endpoint sau khi tạo. Để tìm hiểu thêm về quy trình ghi lại lưu lượng, xem các công cụ ghi lại gói tin với Apidog.
Bạn có thể tải xuống Apidog miễn phí để thực hiện theo hướng dẫn.
Tệp HAR là gì và tại sao nên giữ lưu lượng truy cập đã ghi lại?
HAR là viết tắt của HTTP Archive. Tệp .har là JSON ghi lại tương tác giữa trình duyệt và website, bao gồm request, response, header, body và thông tin thời gian.
Nói đơn giản, HAR là bản ghi của một phiên duyệt web. Vì là JSON, bạn có thể lưu trữ, gửi kèm báo cáo lỗi hoặc nhập vào công cụ hỗ trợ định dạng này.
Khi chuyển HAR thành endpoint, bạn có ngay:
- Request thực tế: URL, query parameter, header và request body mà ứng dụng đã gửi.
- Response thực tế: status code và payload từ máy chủ để dùng làm mock hoặc dữ liệu xác nhận kiểm thử.
- Điểm khởi đầu cho tài liệu: API nội bộ chưa có tài liệu có thể được chuyển thành danh sách endpoint để đặt tên và bổ sung mô tả.
Cách này đặc biệt hữu ích khi bạn kế thừa dịch vụ chưa có đặc tả OpenAPI, cần phân tích cách một tiện ích bên thứ ba giao tiếp với backend, hoặc muốn tái tạo lỗi bằng đúng request đã kích hoạt lỗi đó.
Bước 1: Ghi HAR trong DevTools
Việc ghi HAR diễn ra trong trình duyệt, không phải trong Apidog. Chrome và Edge dùng DevTools tương tự nhau.
Ví dụ dưới đây giả sử bạn muốn ghi lại lưu lượng khi mở trang lịch sử đơn hàng.
- Mở trang cần ghi lại. Nếu API yêu cầu phiên đăng nhập, hãy đăng nhập trước.
- Mở DevTools:
- Windows/Linux:
F12hoặcCtrl+Shift+I - macOS:
Cmd+Opt+I
- Windows/Linux:
- Chuyển sang tab Network.
- Tải lại trang hoặc thực hiện các thao tác cần ghi lại, chẳng hạn mở lịch sử đơn hàng.
- Nhấp chuột phải vào bất kỳ request nào trong danh sách, rồi chọn Save all as HAR with content.
- Lưu tệp, ví dụ:
order-history.har.
Nếu cần đối chiếu thao tác trong DevTools, xem tài liệu Network của Chrome DevTools.
Chọn with content là bước quan trọng. Tùy chọn này đưa response body vào HAR. Nếu bỏ qua, endpoint được nhập vẫn có request nhưng có thể không có response example để mock hoặc kiểm thử.
Bạn có thể kiểm tra nhanh tệp HAR bằng cách mở nó trong trình soạn thảo văn bản. Tệp là JSON và thường có cấu trúc như sau:
{
"log": {
"entries": [
{
"request": {},
"response": {}
}
]
}
}
Mỗi lần tải trang thường tạo cả request API lẫn request tài nguyên tĩnh như ảnh, CSS và JavaScript. Bạn không cần lọc thủ công trong trình duyệt vì có thể loại trừ chúng lúc nhập vào Apidog.
Bước 2: Nhập HAR vào Apidog
Sau khi đã lưu tệp HAR, nhập nó vào project Apidog:
- Mở project.
- Đi tới Settings > Import Data > Manual.
- Chọn định dạng HAR.
- Tải tệp
.harlên, ví dụorder-history.har.
Trước khi xác nhận, hãy cấu hình các tùy chọn nhập sau.
Tùy chọn 1: Xử lý BaseURL
Một request trong HAR thường có URL đầy đủ, ví dụ:
https://api.shop.example.com/v1/orders/123
Bạn có hai cách xử lý BaseURL:
- Hardcode: giữ URL host trong đường dẫn endpoint.
-
Remove (Recommended): loại bỏ BaseURL, chỉ giữ đường dẫn như
/v1/orders/123.
Nên chọn Remove trong hầu hết trường hợp. Khi đó, host được quản lý bằng biến môi trường, giúp bạn chuyển đổi giữa production, staging và local mà không phải sửa từng endpoint.
Xem thêm cách quản lý BaseURL bằng biến môi trường.
Tùy chọn 2: Loại trừ tài nguyên tĩnh
Bật Static Resource > Exclude để bỏ qua ảnh, CSS và JavaScript.
Nếu không bật tùy chọn này, một lần tải trang có thể tạo ra hàng chục endpoint không liên quan, chẳng hạn:
/logo.png
/assets/app.js
/styles/main.css
Sau khi lọc, danh sách chủ yếu còn các API thực tế như:
/api/orders
/api/orders/123
/api/users/me
Tùy chọn 3: Tạo test case cho mỗi endpoint
Bật Endpoint Case Generation nếu bạn muốn Apidog tạo test case mặc định cho từng endpoint được nhập.
Tùy chọn này phù hợp khi mục tiêu tiếp theo là chạy lại request hoặc xây dựng kiểm thử. Nếu hiện tại bạn chỉ cần tài liệu API, có thể tắt và thêm test case sau.
Sau khi xác nhận, Apidog sẽ đọc HAR và tạo endpoint từ các request đã ghi lại.
Ví dụ endpoint được nhập:
GET /v1/orders/123
Host: api.shop.example.com
Authorization: Bearer <token-from-capture>
Accept: application/json
Ví dụ response được lưu kèm:
{
"id": 123,
"status": "shipped",
"total": 48.5,
"currency": "USD",
"items": [
{
"sku": "TSHIRT-BLK-M",
"qty": 2,
"price": 19.25
}
],
"createdAt": "2026-07-14T09:31:00Z"
}
Response thực tế này có thể dùng làm nền tảng cho mock hoặc assertion trong kiểm thử.
Bước 3: Dọn dẹp endpoint sau khi nhập
Nhập HAR là bước khởi tạo nhanh, không phải API definition hoàn chỉnh. Dành vài phút để chuẩn hóa kết quả.
1. Xóa request không cần thiết
Dù đã loại trừ static resource, HAR vẫn có thể chứa:
- Analytics ping
- Health check
- Request tới dịch vụ bên thứ ba
- Endpoint không thuộc phạm vi API bạn cần tài liệu hóa
Xóa các endpoint này để cây API chỉ phản ánh phần bạn thực sự sử dụng.
2. Đổi tên và nhóm endpoint
Tên mặc định thường dựa trên URL. Hãy đổi sang tên thể hiện hành vi:
-
GET /v1/orders/123→ Lấy đơn hàng theo ID -
POST /v1/orders→ Tạo đơn hàng -
GET /v1/orders→ Liệt kê đơn hàng
Sau đó, nhóm chúng theo tài nguyên hoặc domain, ví dụ:
Orders
├── Liệt kê đơn hàng
├── Lấy đơn hàng theo ID
└── Tạo đơn hàng
Users
├── Lấy hồ sơ hiện tại
└── Cập nhật hồ sơ
3. Chuyển giá trị cố định thành path parameter
HAR ghi lại request cụ thể. Vì vậy:
/v1/orders/123
có thể được nhập thành URL cố định. Nếu 123 là ID đơn hàng, hãy đổi endpoint thành:
/v1/orders/{orderId}
Sau đó khai báo orderId là path parameter. Endpoint sẽ tái sử dụng được cho mọi đơn hàng thay vì chỉ cho ID đã ghi lại.
4. Xóa bí mật trước khi chia sẻ
HAR có thể chứa:
- Bearer token
- Cookie phiên đăng nhập
- API key
- Header xác thực
Trước khi chia sẻ project hoặc commit cấu hình, hãy:
- Di chuyển secret vào biến môi trường.
- Xóa token khỏi request example.
- Không đính kèm HAR vào issue công khai.
- Kiểm tra lại Authorization và Cookie trong endpoint đã nhập.
Tài liệu Stripe về API key cũng khuyến nghị không để khóa hoạt động xuất hiện trong các tạo phẩm được chia sẻ. HAR là một loại tệp rất dễ vô tình làm lộ thông tin đăng nhập.
5. Kiểm tra request và response body
Nếu endpoint có request body hoặc response body rỗng ngoài dự kiến, nguyên nhân thường là HAR được xuất mà không dùng Save all as HAR with content.
Cách xử lý:
- Ghi lại phiên một lần nữa.
- Xuất bằng Save all as HAR with content.
- Nhập lại HAR.
Sau khi dọn dẹp, các endpoint hoạt động như endpoint bình thường trong Apidog: bạn có thể viết tài liệu, tạo mock và xây dựng kiểm thử.
Các biến thể và giới hạn thực tế
Apidog chưa ghi endpoint tự động như proxy
Apidog hiện không hỗ trợ ghi trực tiếp lưu lượng endpoint như một proxy chạy nền. Quy trình được hỗ trợ là:
- Ghi request bằng DevTools của trình duyệt.
- Xuất HAR.
- Nhập HAR vào Apidog.
- Dọn dẹp endpoint và tạo test scenario nếu cần.
Đây là bước ghi thủ công, sau đó nhập nhanh từ HAR; không phải trình ghi trực tiếp.
Tiện ích mở rộng trình duyệt Apidog là công cụ khác
Tiện ích mở rộng trình duyệt Apidog hỗ trợ kiểm thử và gỡ lỗi API trong trình duyệt, nhưng không thay thế DevTools để ghi HAR.
Khi dùng extension, trình duyệt có thể giới hạn một số khả năng, bao gồm:
- Một số header như
Cookie,Host,Origin,Content-Length - Request body cho request
GEThoặcHEAD - Quyền truy cập tới mã cục bộ hoặc cơ sở dữ liệu phía sau máy của bạn
Để ghi lưu lượng phục vụ nhập API, hãy dùng DevTools và xuất HAR. Nếu cần kiểm soát header đầy đủ khi gỡ lỗi, Apidog Desktop Client không chịu các giới hạn do trình duyệt áp đặt.
Có thể nhập các định dạng khác
Màn hình Settings > Import Data > Manual cũng hỗ trợ các định dạng khác.
Nếu bạn đã có OpenAPI hoặc Swagger, hãy ưu tiên nhập spec vì kết quả thường sạch hơn HAR. HAR phù hợp khi không có spec và lưu lượng thực tế là nguồn thông tin tốt nhất.
Tự động hóa bằng Apidog CLI
Bạn không nhất thiết phải nhập HAR qua giao diện. Apidog CLI cung cấp lệnh import để đọc trực tiếp tệp HAR.
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
# Nhập HAR thành endpoint trong project
apidog import --project <PROJECT_ID> --format har --file ./capture.har
Cách này phù hợp khi:
- HAR được tạo trên máy chủ
- Bạn cần nhập trong pipeline
- Bạn muốn tự động hóa bằng script
- Tác nhân mã hóa AI tạo endpoint từ bản ghi
Cờ --format cũng hỗ trợ các định dạng như openapi, postman, wsdl và insomnia.
Sau khi tạo endpoint và lưu chúng vào test scenario, chạy scenario trong CI:
apidog run --access-token $APIDOG_ACCESS_TOKEN \
-t <SCENARIO_ID> \
-e <ENV_ID> \
-r cli
Trong đó:
-
-t: ID của test scenario -
-e: ID môi trường chứa các biến như BaseURL -
-r cli: xuất kết quả ra console
Xem thêm:
Câu hỏi thường gặp
Trình duyệt nào có thể xuất HAR?
Chrome và Edge đều có thể xuất HAR từ tab Network bằng tùy chọn Save all as HAR with content. Các trình duyệt khác cũng có thể hỗ trợ xuất HAR, nhưng tên menu có thể khác.
Vì sao danh sách endpoint nhập vào quá lớn?
Khả năng cao bạn đã không bật Static Resource > Exclude. Khi đó, HAR bao gồm ảnh, CSS, JavaScript và mọi tài nguyên trang tải về.
Hãy nhập lại với tùy chọn loại trừ tài nguyên tĩnh, hoặc xóa thủ công các endpoint không cần thiết.
Nên chọn Hardcode hay Remove cho BaseURL?
Trong hầu hết trường hợp, chọn Remove (Recommended).
Tùy chọn này giúp quản lý host bằng environment variable, để cùng endpoint có thể chạy trên production, staging hoặc local mà không phải chỉnh sửa URL.
HAR có chứa token xác thực không?
Có. HAR ghi lại header thực tế của request, vì vậy bearer token và cookie phiên có thể nằm trong tệp.
Hãy coi HAR là dữ liệu nhạy cảm: không đăng công khai, không commit trực tiếp và luôn chuyển secret sang biến môi trường sau khi nhập.
Có thể nhập HAR từ command line không?
Có. Dùng Apidog CLI:
apidog import --project <id> --format har --file <path>
CLI phù hợp cho import tự động hoặc trong CI. Giao diện Apidog phù hợp hơn khi bạn cần điều chỉnh trực tiếp tùy chọn BaseURL và lọc static resource.
Tổng kết
HAR là cầu nối giữa lưu lượng bạn quan sát trong trình duyệt và endpoint có thể tái sử dụng.
Quy trình thực hiện:
- Ghi phiên trong DevTools.
- Xuất bằng Save all as HAR with content.
- Nhập HAR qua Settings > Import Data > Manual.
- Chọn Remove cho BaseURL.
- Chọn Static Resource > Exclude.
- Đổi tên endpoint, thêm path parameter và xóa secret.
- Tạo mock, tài liệu hoặc test scenario từ endpoint đã nhập.
Tải xuống Apidog để biến bản ghi HAR tiếp theo thành endpoint thực tế, có thể tài liệu hóa và kiểm thử.
Top comments (0)