DEV Community

Cover image for Cách Import File HAR vào Apidog (Biến Traffic Đã Ghi Thành Endpoint)
Sebastian Petrus
Sebastian Petrus

Posted on • Originally published at apidog.com

Cách Import File HAR vào Apidog (Biến Traffic Đã Ghi Thành Endpoint)

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ử.

Dùng thử Apidog ngay hôm nay

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.

  1. 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.
  2. Mở DevTools:
    • Windows/Linux: F12 hoặc Ctrl+Shift+I
    • macOS: Cmd+Opt+I
  3. Chuyển sang tab Network.
  4. 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.
  5. 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.
  6. 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": {}
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

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:

  1. Mở project.
  2. Đi tới Settings > Import Data > Manual.
  3. Chọn định dạng HAR.
  4. Tải tệp .har lê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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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"
}
Enter fullscreen mode Exit fullscreen mode

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/123Lấy đơn hàng theo ID
  • POST /v1/ordersTạo đơn hàng
  • GET /v1/ordersLiệ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ơ
Enter fullscreen mode Exit fullscreen mode

3. Chuyển giá trị cố định thành path parameter

HAR ghi lại request cụ thể. Vì vậy:

/v1/orders/123
Enter fullscreen mode Exit fullscreen mode

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}
Enter fullscreen mode Exit fullscreen mode

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:

  1. Di chuyển secret vào biến môi trường.
  2. Xóa token khỏi request example.
  3. Không đính kèm HAR vào issue công khai.
  4. 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ý:

  1. Ghi lại phiên một lần nữa.
  2. Xuất bằng Save all as HAR with content.
  3. 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à:

  1. Ghi request bằng DevTools của trình duyệt.
  2. Xuất HAR.
  3. Nhập HAR vào Apidog.
  4. 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 GET hoặc HEAD
  • 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
Enter fullscreen mode Exit fullscreen mode

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, wsdlinsomnia.

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
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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:

  1. Ghi phiên trong DevTools.
  2. Xuất bằng Save all as HAR with content.
  3. Nhập HAR qua Settings > Import Data > Manual.
  4. Chọn Remove cho BaseURL.
  5. Chọn Static Resource > Exclude.
  6. Đổi tên endpoint, thêm path parameter và xóa secret.
  7. 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)