Apidog Docs
🇻🇳 Tiếng Việt
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇻🇳 Tiếng Việt
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
🇻🇳 Tiếng Việt
  • 🇺🇸 English
  • 🇯🇵 日本語
  • 🇪🇸 Español
  • 🇰🇷 한국인
  • 🇨🇳 简体中文
  • 🇵🇹 Português (Portugal)
  • 🇮🇩 Bahasa Indonesia
  • 🇧🇷 Português (Brasil)
  • 🇻🇳 Tiếng Việt
  • 🇨🇳 繁體中文
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
HomeLearning Center
Support CenterAPI ReferencesDownloadChangelog
  1. Tài nguyên nhóm
  • Trung tâm Học tập Apidog
  • Bắt đầu
    • Giới thiệu về Apidog
    • Các khái niệm cơ bản trong Apidog
    • Điều hướng Apidog
    • Bắt đầu nhanh
      • Tổng quan
      • Tạo một Endpoint
      • Tạo yêu cầu
      • Thêm một khẳng định
      • Tạo kịch bản kiểm thử
      • Chia sẻ tài liệu API
      • Khám phá thêm
    • Di chuyển sang Apidog
      • Tổng quan
      • Nhập thủ công
      • Nhập theo lịch (Liên kết nguồn dữ liệu)
      • Tùy chọn nhập
      • Xuất dữ liệu
      • Nhập từ
        • Nhập từ Postman
        • Nhập OpenAPI Spec
        • Nhập cURL
        • Nhập Markdown
        • Nhập từ Insomnia
        • Nhập từ apiDoc
        • Nhập tệp .har
        • Nhập WSDL
  • Dữ liệu API mock
    • Tổng quan
    • Smart Mock
    • Mock tùy chỉnh
    • Trình tự ưu tiên Mock
    • Mock Scripts
    • Cloud Mock
    • Self-Hosted Runner Mock
    • Ngôn ngữ Mock (Locales)
  • Tài khoản và tùy chọn
    • Cài đặt tài khoản
    • Tạo Token truy cập OpenAPI
    • Thông báo
    • Cài đặt ngôn ngữ
    • Phím tắt
    • Cấu hình Proxy Mạng
    • Sao lưu dữ liệu
    • Cập nhật Apidog
    • Xóa tài khoản
    • Tính năng thử nghiệm
  • Gửi yêu cầu
    • Tổng quan
    • Gỡ lỗi SSE
    • MCP Client
    • Socket.IO
    • WebSocket
    • Webhook
    • SOAP hoặc WebService
    • GraphQL
    • gRPC
    • Sử dụng Tác nhân Proxy Yêu cầu để Gỡ lỗi
    • Tạo yêu cầu
      • Lịch sử yêu cầu
      • Cơ bản về yêu cầu
      • Tham số và Body
      • Header của yêu cầu
      • Cài đặt yêu cầu
      • Gỡ lỗi yêu cầu
      • Lưu yêu cầu dưới dạng Endpoint
      • HTTP/2
    • Xác thực và phân quyền
      • Tổng quan
      • Chứng chỉ CA và Chứng chỉ Client
      • Các loại ủy quyền
      • Digest Auth
      • OAuth 1.0
      • OAuth 2.0
      • Xác thực Hawk
      • Kerberos
      • NTLM
      • Akamai EdgeGrid
    • Phản hồi và cookie
      • Xem phản hồi API
      • Quản lý Cookie
      • Tổng quan
  • Phát triển và gỡ lỗi API
    • Tổng quan
    • Tạo yêu cầu
    • Gửi yêu cầu
    • Trường hợp gỡ lỗi
    • Trường hợp kiểm thử
    • Giá trị động
    • Xác thực phản hồi
    • Design-First vs Request-First
    • Tạo mã
    • Môi trường và biến
      • Tổng quan
      • Sử dụng biến
      • Quản lý môi trường
    • Bí mật trong vault
      • Tổng quan
      • HashiCorp Vault
      • Azure Key Vault
      • AWS Secrets Manager
    • Mô-đun giá trị động
      • Hãng hàng không
      • Animal
      • Màu sắc
      • Commerce
      • Company
      • Cơ sở dữ liệu
      • Kiểu dữ liệu
      • Ngày
      • Finance
      • Food
      • Git
      • Hacker
      • Helpers
      • Hình ảnh
      • Internet
      • Vị trí
      • Lorem
      • Music
      • Number
      • Person
      • Phone
      • Science
      • String
      • Hệ thống
      • Vehicle
      • Từ
    • Bộ xử lý trước và sau
      • Tổng quan
      • Khẳng định
      • Trích xuất biến
      • Chờ
      • Bảo mật
      • Thao tác cơ sở dữ liệu
        • Tổng quan
        • MySQL
        • MongoDB
        • Redis
        • Oracle Client
      • Sử dụng script
        • Tổng quan
        • Script tiền xử lý
        • Tập lệnh hậu xử lý
        • Public Scripts
        • Tài liệu tham khảo về Postman Scripts
        • Gọi các ngôn ngữ lập trình khác
        • Sử dụng thư viện JS
        • Trực quan hóa phản hồi
        • Ví dụ script
          • Tập lệnh khẳng định
          • Sử dụng biến
          • Sửa đổi yêu cầu
          • Các ví dụ khác
    • Gỡ lỗi API
      • AI Agent Debugger
      • A2A Debugger
  • Thiết kế API
    • Tổng quan
    • Tạo một dự án API mới
    • Kiến thức cơ bản về Endpoint
    • Hướng dẫn thiết kế API
    • Mô-đun
    • Cấu hình nhiều ví dụ về body của yêu cầu
    • Thành phần
    • Trường Chung
    • Tham số toàn cục
    • Lịch sử thay đổi endpoint
    • Bình luận
    • Quản lý Endpoint Hàng loạt
    • Custom Protocol API
    • Chế độ Spec-first (Beta)
    • Lược đồ bảo mật
      • Tổng quan
      • Tạo Security Scheme
      • Sử dụng Lược đồ bảo mật
      • Lược đồ bảo mật trong tài liệu trực tuyến
    • Tính năng nâng cao
      • Trường Endpoint Tùy chỉnh
      • Các kịch bản kiểm thử được liên kết
      • Trạng thái Endpoint
      • Giao diện của Danh sách Tham số
      • Nhận dạng duy nhất endpoint
    • Schemas
      • Tổng quan
      • Tạo Schema Mới
      • Xây dựng Schema
      • Tạo Schema từ JSON, v.v.
      • oneOf, allOf, anyOf
      • Sử dụng Discriminator
  • Kiểm thử API
    • Tổng quan
    • Kịch bản kiểm thử
      • Tạo một kịch bản kiểm thử
      • Truyền dữ liệu giữa các yêu cầu
      • Điều kiện điều khiển luồng
      • Đồng bộ dữ liệu từ endpoint và trường hợp endpoint
      • Nhập Endpoint và Endpoint Case từ các dự án khác
      • Xuất Kịch bản Kiểm thử
    • Báo cáo kiểm thử
      • Báo cáo kiểm thử
    • Chạy kịch bản kiểm thử
      • Chạy một kịch bản kiểm thử
      • Chạy hàng loạt các kịch bản kiểm thử
      • Kiểm thử dựa trên dữ liệu
      • Dữ liệu kiểm thử dùng chung
      • Tác vụ đã lên lịch
      • Quản lý môi trường runtime của API từ các dự án khác
    • Bộ kiểm thử
      • Tổng quan
      • Tạo một bộ kiểm thử
      • Điều phối Bộ kiểm thử
      • Chạy bộ kiểm thử cục bộ
      • Chạy Bộ Kiểm Thử Qua CLI
      • Tác vụ đã lên lịch
    • Kiểm thử API
      • Kiểm thử tích hợp
      • Kiểm thử hiệu năng
      • Kiểm thử End-to-End
      • Kiểm thử hồi quy
      • Kiểm thử hợp đồng
    • Apidog CLI
      • Tổng quan
      • Cài đặt và chạy Apidog CLI
      • Tùy chọn Apidog CLI
    • CI/CD
      • Tổng quan
      • Tích hợp với Github Actions
      • Tích hợp với Gitlab
      • Tích hợp với Jenkins
      • Kích hoạt kiểm thử bằng Git Commit
  • Xuất bản tài liệu API
    • Tổng quan
    • Các công nghệ API được hỗ trợ
    • Chia sẻ nhanh
    • Xem tài liệu API
    • Tài liệu Markdown
    • Xuất bản site tài liệu
    • Trang đăng nhập tùy chỉnh
    • Bố cục tùy chỉnh
    • CSS, JavaScript, HTML tùy chỉnh
    • Tên miền tùy chỉnh
    • Tính năng AI
    • Cài đặt SEO
    • Cài đặt nâng cao
      • Tìm kiếm tài liệu
      • Proxy CORS
      • Tích hợp Google Analytics
      • Cài đặt cây thư mục
      • Cài đặt khả năng hiển thị
      • Nhúng giá trị vào URL tài liệu
    • Phiên bản API
      • Tổng quan
      • Tạo phiên bản API
      • Xuất bản các phiên bản API
      • Chia sẻ endpoint theo phiên bản API
  • Nhánh
    • Tổng quan
    • Tạo một Sprint Branch
    • Kiểm thử API trong một nhánh
    • Thiết kế API trong một nhánh
    • Hợp nhất các nhánh Sprint
    • Quản lý Nhánh Sprint
    • AI Branch (Beta)
  • Tính năng AI
    • Tổng quan
    • Bật các tính năng AI
    • Tạo Trường hợp Kiểm thử
    • Sửa đổi Schema bằng AI
    • Kiểm tra tuân thủ endpoint
    • Kiểm tra mức độ hoàn chỉnh của tài liệu API
    • Đặt tên trường bằng AI
    • Câu hỏi thường gặp
  • Máy chủ MCP Apidog
    • Tổng quan
    • Kết nối dự án Apidog với AI
    • Kết nối tài liệu đã xuất bản với AI
    • Kết nối tệp OpenAPI với AI
  • Thực hành tốt nhất
    • Xử lý chữ ký API
    • Truy cập các API được bảo vệ bằng OAuth 2.0
    • Quy trình cộng tác
    • Quản lý trạng thái xác thực
  • Không gian ngoại tuyến
    • Tổng quan
  • Apidog Europe
    • Apidog Europe
  • Quản trị
    • Quản lý dự án
      • Quản lý dự án
      • Cài đặt thông báo
      • Quản lý thành viên dự án
      • Tài nguyên dự án
        • Kết nối cơ sở dữ liệu
        • Kết nối Git
    • Quản lý nhóm
      • Quản lý nhóm
      • Quản lý thành viên nhóm
      • Hoạt động của nhóm
      • Vai trò & Quyền của Nhóm
      • Tài nguyên nhóm
        • General Runner
        • Biến nhóm
        • Request Proxy Agent
      • Cộng tác thời gian thực
        • Cộng tác nhóm
    • Danh sách kiểm tra onboarding
      • Khái niệm cơ bản
      • Hướng dẫn nhập môn
    • Quản lý tổ chức
      • Quản lý Tổ chức
      • Vai trò & Quyền trong Tổ chức
      • Quản lý gói
        • Người quản lý thanh toán trong tổ chức
      • Đăng nhập một lần (SSO)
        • Tổng quan về SSO
        • Cấu hình Microsoft Entra ID
        • Cấu hình Okta
        • Cấu hình SSO cho một tổ chức
        • Quản lý tài khoản người dùng
        • Ánh xạ Nhóm tới Đội
      • Cấp phát SCIM
        • Giới thiệu về cấp phát SCIM
        • Microsoft Entra ID
        • Okta
      • Tài nguyên tổ chức
        • Self-Hosted Runner
  • Thanh toán
    • Tổng quan
    • Credits
    • Nâng cấp gói của bạn
    • Phương thức thanh toán thay thế
    • Quản lý đăng ký
    • Chuyển các nhóm trả phí vào tổ chức
  • Tiện ích bổ sung
    • API Hub
    • Apidog Intellij IDEA Plugin
    • Tiện ích mở rộng trình duyệt
      • Chrome
      • Microsoft Edge
    • Proxy yêu cầu
      • Proxy yêu cầu trên Web
      • Proxy yêu cầu trong tài liệu được chia sẻ
      • Proxy yêu cầu trong Client
  • Dữ liệu và bảo mật
    • Lưu trữ và bảo mật dữ liệu
    • Quyền riêng tư và bảo mật dữ liệu người dùng
    • Định tuyến yêu cầu và bảo mật dữ liệu
  • Tham chiếu
    • Phương pháp tiếp cận API Design-First
    • Phần mở rộng Đặc tả OpenAPI của Apidog
    • JSONPath
    • XPath
    • Biểu thức chính quy
    • JSON Schema
    • Định dạng tệp CSV
    • Cài đặt môi trường Java
    • Môi trường triển khai Runner
    • Cú pháp Markdown của Apidog
    • Tiện ích mở rộng Swagger của Apidog
      • Tổng quan
      • x-apidog-folder
      • x-apidog-status
      • x-apidog-name
      • x-apidog-maintainer
    • Tiện ích mở rộng JSON Schema của Apidog
      • Tổng quan
      • x-apidog-mock
      • x-apidog-orders
      • x-apidog-enum
  • Trung tâm hỗ trợ
    • Apidog Support Center
    • Nhập/Xuất
      • Làm thế nào để nhập dữ liệu API vào Apidog?
      • Làm thế nào để import cURL trong Apidog?
      • Làm thế nào để di chuyển môi trường Postman sang Apidog?
      • Cách tự động nhóm các endpoint khi nhập Swagger/OpenAPI?
    • Gửi yêu cầu
      • Apidog có hỗ trợ Socket.IO không?
      • Vì sao dấu "+" trong giá trị tham số được giải mã thành khoảng trắng?
      • Cách gửi yêu cầu trong Apidog?
      • Cách gửi yêu cầu GraphQL trong Apidog?
      • Cách gửi yêu cầu gRPC trong Apidog?
      • Làm thế nào để gửi một yêu cầu SOAP/WebService trong Apidog?
      • Cách gửi yêu cầu WebSocket trong Apidog?
      • Apidog có hỗ trợ script trước yêu cầu/script kiểm thử và khẳng định trong API WebSocket không?
      • Cách gửi yêu cầu SSE trong Apidog?
      • Làm thế nào để thêm header mặc định ở cấp thư mục?
      • Apidog có hỗ trợ script trước yêu cầu/script kiểm thử và khẳng định trong API gRPC không?
      • Lỗi ELANREFUSED.DNS Resolver
      • Tại sao tôi gặp lỗi "socket hang up" khi gửi yêu cầu?
      • Sửa lỗi yêu cầu
        • Khắc phục lỗi read ECONNRESET
        • Khắc phục lỗi ECONNREFUSED
        • Khắc phục lỗi ETIMEDOUT
        • Khắc phục lỗi ENOTFOUND: Couldn't resolve host
        • Khắc phục lỗi ENOTFOUND: getaddrinfo ENOTFOUND www
        • Khắc phục lỗi connect EHOSTUNREACH
    • Thiết kế API
      • Làm thế nào để sử dụng biến trong đường dẫn?
      • Tôi có thể sử dụng một response component làm phản hồi mặc định không?
      • Làm thế nào để kiểm tra ai đã sửa đổi một endpoint?
      • Làm thế nào để tôi xóa hàng loạt các thư mục endpoint trong Apidog?
      • Làm thế nào để tôi thêm/xóa hàng loạt tiền tố vào đường dẫn của endpoint?
      • Cách di chuyển cấp của một thuộc tính trong Schema Editor?
      • Nếu một thuộc tính chuỗi có nhiều giá trị liệt kê và được sử dụng ở nhiều vị trí khác nhau, làm thế nào để enum này có thể được tham chiếu nhất quán trong toàn bộ tài liệu?
      • Làm thế nào để lấy ID thư mục tài nguyên Apidog?
      • Làm thế nào để lấy ID thư mục tài nguyên của Apidog?
      • Làm thế nào để sử dụng biến trong đường dẫn URL?
      • Tôi nên làm gì nếu một endpoint, tài liệu hoặc kịch bản kiểm thử bị xóa nhầm?
      • Apidog có hỗ trợ mã yêu cầu cho endpoint tùy chỉnh không?
      • Làm thế nào để tự động nhóm các endpoint khi nhập Swagger/OpenAPI vào Apidog?
      • Làm thế nào để tạo dữ liệu mảng không trùng lặp trong phản hồi mock?
      • Vì sao không hỗ trợ nhập "#" trong path?
    • Gỡ lỗi API
      • Apidog tích hợp với các hệ thống quản lý khóa của bên thứ ba như thế nào?
      • Tại sao cùng một yêu cầu hoạt động chính xác trong các công cụ khác (chẳng hạn như Postman) nhưng lại không hoạt động trong Apidog?
      • Làm thế nào để lấy giá trị biến từ cơ sở dữ liệu trong Apidog?
      • Làm thế nào để di chuyển môi trường từ các công cụ khác sang Apidog?
      • Làm thế nào để khẳng định bằng script trong Apidog?
      • JSONPath chỉ có thể trích xuất mảng. Làm thế nào để trích xuất một phần tử đơn lẻ từ bên trong mảng trong Apidog?
      • Cách cấu hình thao tác cơ sở dữ liệu trong Apidog khi các môi trường khác nhau có thông tin xác thực tài khoản cơ sở dữ liệu khác nhau?
      • Làm thế nào để lấy URL cơ sở của dịch vụ trong script tùy chỉnh?
      • Tại sao Apidog báo lỗi vượt quá độ dài chuỗi Node.js tối đa khi phản hồi API quá lớn?
      • Giới hạn kích thước khi in ra console là bao nhiêu? Tại sao tôi gặp lỗi khi in các tệp lớn?
      • Cách khắc phục lỗi kết nối cơ sở dữ liệu DB2 trên Windows?
      • Tại sao tôi gặp lỗi NJS-045 khi kết nối với cơ sở dữ liệu Oracle trong Apidog?
      • Cách tạo giá trị động trong script tùy chỉnh của Apidog?
      • Tại sao yêu cầu từ client đến cùng một endpoint thành công, nhưng khi debug trên phía web lại xảy ra lỗi: "Unable to request address"?
      • Tại sao Apidog báo lỗi khi phản hồi quá lớn?
      • Làm thế nào để sử dụng endpoint ghi của Apidog?
      • Khi định nghĩa phản hồi của endpoint, endpoint có được phép không có nội dung phản hồi không?
      • Làm thế nào để lấy service baseURL trong custom script?
      • Làm thế nào để xem gói tin gốc trong Apidog?
      • Tại sao tôi thấy lỗi "Invalid URI xxx" khi thực hiện yêu cầu?
      • Làm thế nào để tạo một yêu cầu bất đồng bộ trong script Apidog?
      • Tại sao tôi thấy thông báo "Couldn't resolve host" khi gửi yêu cầu?
      • Giới hạn kích thước in của console là gì? Tại sao tôi gặp lỗi khi in một tệp lớn?
      • Làm thế nào để tải tệp lên trong một yêu cầu endpoint?
      • Cần làm gì nếu Apidog bị treo hoặc dữ liệu phản hồi không hiển thị?
      • URI chuyển hướng chính thức được Apidog sử dụng cho OAuth2.0
    • Dữ liệu API mock
      • Làm thế nào để mock API tự động?
      • Mocking của Apidog có thể làm gì?
      • Làm thế nào để mock dữ liệu API cố định trong Apidog?
      • Cách mock dữ liệu có điều kiện trong Apidog?
      • Cách bật cloud mock trong Apidog?
      • Làm thế nào để bật mock tự lưu trữ trong Apidog?
      • Apidog có hỗ trợ mock API WebSocket không?
      • Vì sao trình duyệt không trả về nội dung khi yêu cầu mock endpoint?
    • Kiểm thử tự động
      • Vì sao các kịch bản kiểm thử chạy bình thường trên client cục bộ của tôi, nhưng lại xảy ra lỗi khi chạy trong Apidog CLI hoặc runner?
      • Cách tạo một kịch bản kiểm thử trong Apidog?
      • Làm thế nào để truyền dữ liệu giữa các bước kiểm thử?
      • Tại sao tôi không thể tham chiếu thành công dữ liệu bước trước?
      • Cách sử dụng vòng lặp foreach trong Apidog?
      • Sự khác biệt giữa đồng bộ dữ liệu từ endpoint/trường hợp endpoint là gì?
      • Cách sử dụng dữ liệu kiểm thử trong Apidog?
      • Cách truy xuất dữ liệu kiểm thử trong script trong Apidog?
      • Cách chạy hàng loạt các kịch bản kiểm thử trong Apidog?
      • Cách lên lịch tác vụ kiểm thử trong Apidog?
      • Cách chạy kiểm thử hiệu năng trong Apidog?
      • Làm thế nào để tôi xem các yêu cầu và phản hồi thực tế trong các kiểm thử hiệu năng?
      • Làm thế nào để xuất báo cáo kiểm thử hiệu năng trong Apidog?
      • Cách sử dụng kết quả truy vấn cơ sở dữ liệu làm tham số để lặp các yêu cầu API?
      • Capture and Validate Stripe Webhooks in ApiDog During CI/CD
      • Cách khắc phục lỗi "Error: unable to verify the first certificate on runner"?
      • Lỗi "Not Found" của General Runner Docker Container.
      • Cách thiết lập máy chủ lưu trữ server cho General Runner trong phiên bản Web của Apidog?
      • Vì sao kịch bản kiểm thử theo lịch kết thúc với 0 yêu cầu?
      • Tôi nên làm gì nếu không tìm thấy tham số tải tệp lên trong Runner hoặc CLI?
      • Cách sử dụng Runner để chạy một kịch bản kiểm thử có bước tải tệp lên?
      • Làm thế nào để khắc phục lỗi "Error: unable to verify the first certificate on runner"?
      • Làm thế nào để truy cập và tìm kiếm nhật ký runner nhằm xác định vấn đề khi xảy ra sự cố với runner?
      • Tôi nên làm gì nếu tham số endpoint là tệp tải lên và không thể tìm thấy trong Runner hoặc CLI?
      • Tại sao các bước kiểm thử không được tự động đồng bộ hóa khi trường hợp sử dụng API thay đổi?
      • Tại sao việc sử dụng nhiều dấu đô la trong tài liệu Markdown khiến một số nội dung không hiển thị chính xác?
      • Runner tự lưu trữ có tạo báo cáo kiểm thử trên máy chủ sau khi thực thi một tác vụ không?
      • Tôi có thể thêm bộ xử lý trước/sau thống nhất vào các yêu cầu trong một kịch bản kiểm thử không?
      • Làm thế nào để giữ các giá trị động nhất quán trong một lần chạy kiểm thử tự động?
    • Xuất bản tài liệu API
      • Làm thế nào để ẩn tất cả logo Apidog trong tài liệu đã xuất bản?
      • Khi đặc tả API được cập nhật, tài liệu API có thay đổi không?
      • Làm thế nào để chia sẻ API với cộng tác viên trong Apidog?
      • Làm thế nào để tùy chỉnh domain của tài liệu Apidog?
      • Cách tạo tài liệu đa phiên bản trong Apidog?
      • Phạm vi chia sẻ cho Publish Docs Sites trong Apidog
      • Phạm vi chia sẻ cho danh sách Share Doc trong Apidog
      • Tại sao Share Docs đã xuất bản không hiển thị hostname?
      • Người dùng tài liệu có thể sửa đổi Base URL trong tài liệu được chia sẻ như thế nào?
      • Tôi có thể sao chép một tài liệu Apidog đã được xuất bản để sử dụng trong dự án của mình không?
      • Cách chia sẻ header (ví dụ: Token) trong tài liệu trực tuyến của Apidog?
      • Tại sao thành viên trong nhóm của tôi không thể tìm thấy tài liệu đã xuất bản?
      • Làm thế nào để khắc phục lỗi chứng chỉ SSL hết hạn hoặc lỗi Cloudflare 526 trên miền tùy chỉnh của tôi?
      • Cấu hình SMTP tùy chỉnh thành công, nhưng người dùng trong danh sách cho phép không nhận được email OTP
    • Markdown
      • Làm thế nào để sử dụng thẻ để liên kết đến các trang hoặc endpoint khác nhau trong Apidog?
      • Tại sao một số nội dung không hiển thị đúng khi sử dụng nhiều ký hiệu $ trong tài liệu Markdown?
      • Cách sử dụng hình ảnh nền trong suốt trong Apidog Markdown?
      • Làm thế nào để đặt chiều rộng cột của bảng Markdown?
      • Làm thế nào để chèn API nội bộ, tài liệu, schema dữ liệu hoặc thư mục vào tài liệu Markdown?
      • Làm thế nào để thêm liên kết đến tài liệu hoặc endpoint trong một dự án trong thành phần card của Apidog?
    • Nhánh
      • Làm thế nào để truy cập nhánh sprint?
    • Quản trị
      • Cách cài đặt Apidog client ở chế độ im lặng?
      • Tại sao tôi thấy lỗi 'No Permission' dù có quyền admin?
      • Làm thế nào để kiểm tra số phiên bản của runner?
      • Apidog có hỗ trợ win7 không?
      • Tại sao Apidog hiển thị lỗi "Cannot locate program entry point DiscardVirtualMemory in dynamic link library KERNEL32.dll" sau khi cài đặt?
      • Thay đổi gói đăng ký và hoàn tiền
      • Yêu cầu web hoạt động, nhưng ứng dụng gặp lỗi "read ECONNRESET"—Vì sao?
      • Tại sao tôi không thể mở Apidog sau khi cập nhật hệ thống Windows?
      • Tại sao Apidog không mở được sau khi cập nhật hệ thống Windows
    • Thanh toán
      • Tôi có thể thiết lập một tài khoản thanh toán riêng cho nhóm của mình trong Apidog không?
      • Vấn đề về quyền truy cập nhóm và thanh toán trên Apidog
      • Thành viên nhóm được mời không thể truy cập Apidog.
      • Chuyển một Nhóm trả phí cá nhân sang Tổ chức
    • Tại chỗ
      • Quản lý người dùng và quyền truy cập trong phiên bản Apidog Self-Hosted (Enterprise)
    • Web và client
      • Tải xuống và cài đặt phiên bản Linux Desktop
  1. Tài nguyên nhóm

General Runner

Apidog Self-hosted Runner có thể được hiểu là một chương trình tự động có thể được lưu trữ trên một máy chủ độc lập. Chương trình này có thể thực thi các tác vụ trong Apidog, chẳng hạn như kiểm thử tự động theo lịch, nhập tài liệu API theo lịch và trả về kết quả phản hồi mock.

Chuẩn bị#

Máy chủ lưu trữ (máy chủ hoặc PC cục bộ) phải được cài đặt Docker.
Phiên bản Docker tối thiểu bắt buộc là 20.10.0, khuyến nghị sử dụng phiên bản 20.10.13.

Bắt đầu nhanh#

Phần này sẽ hướng dẫn bạn cách triển khai General Runner trên máy chủ của mình.

1. Triển khai General Runner#

Điều hướng đến trang Apidog Home, chọn nhóm mong muốn, sau đó nhấp vào Resources ở bên phải. Từ đó, nhấp vào Deploy General Runner để bắt đầu.
team-resources-general-runner.png

2. Lấy lệnh triển khai Runner#

Sau khi nhấp vào Deploy General Runner, hãy sao chép lệnh triển khai cho General Runner từ cửa sổ bật lên. Bạn có thể tùy chỉnh lệnh khi cần, hỗ trợ hệ điều hành máy chủ tùy chỉnh, cổng được phơi bày, thư mục dữ liệu được mount, v.v. Dưới đây là phần giải thích chi tiết về các thiết lập này:
Server OS: Chỉ định hệ điều hành cho Docker container. Bao gồm Linux, macOS và Windows. Việc chọn đúng hệ điều hành là rất quan trọng để đảm bảo Docker container hoạt động đúng cách.
Docker Image: Có ba phiên bản: General, Slim và Custom. Nếu "custom script" của bạn cần gọi các chương trình bên ngoài, hãy chọn image phù hợp để cài đặt dựa trên môi trường bắt buộc:
General: Chứa tất cả tính năng của Runner và được cài đặt sẵn các môi trường ngôn ngữ sau: Node.js 18, Java 21, Python 3 và PHP 8.
Slim: Chứa tất cả tính năng của Runner nhưng chỉ cài đặt sẵn Node.js 18.
Custom: Chứa tất cả tính năng của Runner và hỗ trợ môi trường ngôn ngữ tùy chỉnh cho các chương trình bên ngoài. Bạn có thể tạo Dockerfile của riêng mình để thêm hoặc xóa môi trường khi cần.
Exposed Port: Theo mặc định, Docker container không phơi bày các cổng nội bộ để truy cập từ bên ngoài. Sử dụng tham số -p, bạn có thể ánh xạ một cổng nội bộ của container tới một cổng trên máy chủ lưu trữ, cho phép truy cập từ bên ngoài vào các dịch vụ do container cung cấp. Ví dụ, -p 80:4524 ánh xạ cổng nội bộ 4524 của container tới cổng 80 trên máy chủ lưu trữ.
Mount Data Directory: Tham số -v cho phép bạn mount các thư mục từ máy chủ lưu trữ vào container, cho phép container truy cập và thao tác với các tệp trên máy chủ lưu trữ (ví dụ: cấu hình cơ sở dữ liệu hoặc chương trình bên ngoài). Ví dụ, -v "/opt/runner":/opt/runner mount thư mục /opt/runner của máy chủ lưu trữ vào thư mục /opt/runner của container.
image.png
TIP
Lệnh triển khai chứa thông tin token và sẽ chỉ được hiển thị một lần vì lý do bảo mật dữ liệu. Một lệnh mới sẽ được tạo mỗi khi bạn nhấp vào Deploy General Runner.
Vui lòng lưu lệnh cục bộ, vì bạn có thể sử dụng lệnh này cho các lần nâng cấp Runner trong tương lai.

3. Triển khai Runner trên máy chủ#

Dán lệnh triển khai đã sao chép vào terminal của máy chủ, và quá trình cài đặt Runner sẽ tự động bắt đầu.
TIP
Bạn có thể sửa đổi các thuộc tính triển khai của Runner thông qua biến môi trường để phù hợp hơn với các kịch bản sử dụng thực tế của mình. Đọc môi trường triển khai runner để biết thêm thông tin.
Sau khi cài đặt hoàn tất, terminal sẽ in ra thông tin liên quan. Nếu có lỗi, bạn có thể khắc phục dựa trên chi tiết lỗi. Nếu vẫn không thể giải quyết, vui lòng liên hệ với chúng tôi và cung cấp phản hồi.

4. Xem trạng thái Runner trên máy chủ#

Bạn có thể xem trạng thái chạy của container thông qua Docker client.
Bạn cũng có thể sử dụng lệnh docker ps trong terminal để xem trạng thái chạy của container.

5. Xem General Runner đã triển khai tại Apidog#

Sau khi xác nhận rằng Runner container trên máy chủ đã được triển khai và bật, hãy quay lại Apidog. Bạn có thể thấy Runner đã được triển khai và kết nối với Apidog trong Team Resources → General Runner.
Nếu General Runner đã được triển khai thành công trên máy chủ nhưng không hiển thị trong Apidog client, vui lòng nhấp vào nút làm mới ở phía bên phải của "General Runner" để làm mới trang và kiểm tra lại.
Bạn có thể đổi tên, thêm mô tả và xóa Runner để các thành viên trong nhóm có thể sử dụng Runner này tốt hơn; bạn cũng có thể dừng/khởi động lại Runner.
Runner bị tạm dừng sẽ không còn thực thi các tác vụ theo lịch đã chỉ định, cũng như không thể tạo các tác vụ liên quan mới và chỉ định Runner này để thực thi.
Tham khảo bảng dưới đây để biết phần giải thích trạng thái của Runner:
Trạng tháiMô tả
Đã khởi độngRunner được bật bình thường trong container trên máy chủ, duy trì liên lạc với Apidog và có thể xử lý các tác vụ liên quan do Apidog phát hành.
Đã dừngRunner được dừng thủ công trong Apidog nhưng vẫn tiếp tục chạy bình thường trong container trên máy chủ và duy trì liên lạc. Runner sẽ không xử lý các tác vụ do Apidog phát hành, và các tác vụ mới không thể chỉ định một Runner đã dừng để thực thi. Bạn có thể bật thủ công Runner tại Apidog để khôi phục Runner về trạng thái đã khởi động.
Ngoại tuyếnRunner bị ngắt kết nối khỏi Apidog và không thể xử lý tác vụ. Điều này có thể do Runner container dừng trên máy chủ hoặc do sự cố liên lạc giữa máy chủ và Apidog. Để khôi phục Runner, hãy đảm bảo Runner container đang chạy và không có vấn đề liên lạc với Apidog, cho phép Runner khôi phục về trạng thái đã khởi động.
Bạn có thể triển khai nhiều General Runner trong một nhóm. Khi tạo các tác vụ yêu cầu Self-hosted Runner, các thành viên trong nhóm có thể chọn từ các Runner khả dụng.

Lưu tệp trong Runner#

Khi sử dụng Runner để thực thi các tác vụ như yêu cầu endpoint, kịch bản kiểm thử và tác vụ theo lịch, một số tệp cục bộ có thể cần thiết để hỗ trợ thực thi tác vụ. Ví dụ bao gồm:
Gọi các ngôn ngữ lập trình khác trong custom script
Sử dụng kết nối cơ sở dữ liệu trong Pre/Post Processors
Sử dụng chứng chỉ SSL khi gửi yêu cầu
Để đáp ứng nhu cầu này, hãy lưu các tệp cần thiết vào thư mục được chỉ định trong Docker container. Khi Runner thực thi các tác vụ liên quan, Runner sẽ đọc nội dung tệp từ thư mục được chỉ định theo yêu cầu của tác vụ để đảm bảo hoàn tất thành công.
Tham khảo bảng sau để đặt các tệp có định dạng và nội dung phù hợp vào thư mục được chỉ định để sử dụng:
Nội dung sử dụngĐường dẫn thư mục được chỉ định (hoặc tên tệp)Lệnh Docker ví dụ
Các ngôn ngữ lập trình khác/app/external-programs/-v /Users/xxx/runner/packages/api-test/external-programs:/app/externalPrograms
Tệp cấu hình kết nối cơ sở dữ liệu/app/database/database-connections.json-v /Users/xxx/runner/packages/api-test/database/database-connections.json:/app/database/database-connections.json
Tệp danh sách chứng chỉ SSL/app/ssl/ssl-client-cert-list.json-v /Users/xxx/runner/packages/api-test/ssl/ssl-client-cert-list.json:/app/ssl/ssl-client-cert-list.json
Bạn có thể tham khảo Trang này để xem cách xuất tệp cấu hình từ Apidog client.

Nâng cấp và triển khai lại Runner#

Nâng cấp Runner#

Khi một phiên bản mới của Runner được phát hành, một biểu tượng nâng cấp sẽ xuất hiện trong giao diện người dùng Runner trên máy tính. Nhấp vào biểu tượng để cài đặt phiên bản mới nhất do Apidog cung cấp.
runner-user-interface.png
Nhấp vào Upgrade sẽ nhắc bạn dừng Runner container hiện đang chạy. Xin lưu ý rằng sau khi container bị dừng, các tác vụ theo lịch và mọi tác vụ được gửi tới Runner này từ client sẽ không còn được thực thi.
update-prompt.png
Sau khi bạn xác nhận nâng cấp, Apidog sẽ tự động dừng Runner container hiện tại và cung cấp một lệnh để triển khai phiên bản mới. Thực hiện theo các bước triển khai ban đầu để triển khai lại Runner. Sau khi triển khai thành công, bạn sẽ sử dụng phiên bản mới nhất. Lưu ý: Các tác vụ theo lịch hiện có trong client sẽ không bị ảnh hưởng và không cần được chỉ định lại.
update-general-runner.png

Triển khai lại Runner#

Nếu Runner gặp sự cố và bạn không thể tìm thấy cách giải quyết trong phần Hỏi & Đáp, hoặc hướng dẫn không hữu ích, hãy cân nhắc triển khai lại Runner. Để thực hiện việc này, hãy điều hướng đến mục More Actions của Runner cụ thể và nhấp vào Redeploy.
redeploy-the-runner.png
Quy trình triển khai lại giống như nâng cấp ở trên. Lưu ý: Việc triển khai lại cũng sẽ dừng Runner container.

Hỏi & Đáp#

1. Cách kiểm tra nhật ký Runner để chẩn đoán sự cố?
Sử dụng lệnh docker ps để xác định Runner có vấn đề.
Sử dụng các lệnh sau để xem nhật ký:
Runner của tôi bị ngừng/ngắt kết nối hoặc không thể thực thi tác vụ. Tôi nên làm gì?
Bước 1: Thu thập thông tin để chẩn đoán sự cố:
Tìm các mẫu lỗi hoặc chi tiết vận hành
Mở công cụ dành cho nhà phát triển (Alt+7+8), gửi một kịch bản kiểm thử đến Runner có vấn đề và ghi lại chi tiết endpoint
Xem lại nhật ký Runner để tìm bất kỳ thông báo lỗi hoặc manh mối nào
Bước 2: Giải quyết sự cố:
Nếu bạn có thể xác định vấn đề và vấn đề đó không do lỗi của Apidog gây ra, hãy tự khắc phục
Nếu bạn không thể xác định chính xác sự cố, hãy liên hệ với cộng đồng Apidog để được hỗ trợ thêm
Tại sao tôi không nhận được thông báo sau khi Runner hoàn tất tác vụ theo lịch?
Bước 1: Xác minh việc hoàn tất tác vụ:
Kiểm tra xem báo cáo kiểm thử cho tác vụ theo lịch có khả dụng trong Apidog client hay không
Xem lại nhật ký Runner để tìm bất kỳ sự cố nào
Bước 2: Kiểm tra cấu hình thông báo:
Đảm bảo các thiết lập thông báo được lưu trong tác vụ theo lịch
Kiểm tra kỹ rằng các điều kiện và người nhận được cấu hình chính xác
Thử kích hoạt tác vụ theo cách thủ công để xác nhận xem thông báo có được gửi đúng cách hay không
Lỗi 'No Runner Privilege' có nghĩa là gì và cách khắc phục?
Có hai nguyên nhân có thể gây ra lỗi này:
Lệnh triển khai đã được tạo lại: Nếu bạn đã tạo lệnh, đóng cửa sổ bật lên, rồi nhấp lại, một token mới có thể làm token trước đó mất hiệu lực. Để khắc phục:
Chuyển sang một nhóm khác ở góc trên bên trái, sau đó quay lại nhóm cần triển khai Runner
Tạo lại lệnh triển khai, sao chép và chạy lệnh đó. Đảm bảo bạn không nhấp để tạo lại lần nữa cho đến khi quy trình hoàn tất.
Lỗi dữ liệu ID với biến teamId: Đây là một lỗi đã biết và đã được khắc phục trong phiên bản mới nhất. Nếu sự cố vẫn tiếp diễn:
Chuyển sang một nhóm khác ở góc trên bên trái, sau đó quay lại nhóm cần triển khai Runner
Tạo lại lệnh triển khai, sao chép và chạy lệnh đó. Đảm bảo bạn không nhấp để tạo lại lần nữa cho đến khi quy trình hoàn tất.
Modified at 2026-06-11 10:23:06
Previous
Vai trò & Quyền của Nhóm
Next
Biến nhóm
Built with