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. Gửi yêu cầu
  • Back to home
  • Trung tâm hỗ trợ
  • Trung tâm Hỗ trợ Apidog
  • 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. Gửi yêu cầu

Cách gửi yêu cầu gRPC trong Apidog?

gRPC là một framework Remote Procedure Call (RPC) hiệu quả, nhanh và đáng tin cậy, được sử dụng rộng rãi trong nhiều kịch bản khác nhau. Trong kiến trúc microservices, Apidog hỗ trợ giao tiếp hiệu quả giữa các dịch vụ. Đối với các kịch bản liên quan đến truyền tải dữ liệu lớn, Apidog sử dụng khả năng streaming để giảm độ trễ mạng và mức tiêu thụ băng thông.
Chức năng gỡ lỗi API gRPC hiện đang trong giai đoạn kiểm thử Beta. Phiên bản Apidog phải bằng hoặc lớn hơn 2.3.0 để sử dụng tính năng gỡ lỗi API gRPC.

Tạo dự án gRPC mới#

Nhấp vào nút "New Project" trên trang chủ Apidog và chọn "gRPC Project (Beta)."

Nhập Proto#

gRPC tuân theo phương pháp API-First, nghĩa là trước khi phát triển, các dịch vụ, phương thức và thông điệp phải được định nghĩa thông qua các tệp .proto. Do đó, trước khi gỡ lỗi API gRPC bằng Apidog, bạn cần nhập tệp .proto đóng vai trò là định nghĩa API.

Nhập ban đầu#

Hiện tại, có hai cách để nhập tệp .proto:
Tệp cục bộ
URL lưu trữ tệp .proto
Tệp .proto đã chọn sẽ được nhập dưới dạng một Proto, trong đó service sẽ được nhập dưới dạng service, và rpc sẽ được nhập dưới dạng các phương thức.
Nếu tệp .proto đã chọn phụ thuộc vào các tệp .proto khác, bạn cần thêm thủ công thư mục phụ thuộc.
Các service từ những tệp .proto khác mà tệp .proto đã chọn phụ thuộc vào cũng sẽ được nhập vào cùng một Proto nếu package của chúng thuộc cùng package với tệp .proto đã chọn.

Nhập lại#

Nếu tệp .proto đã nhập có thay đổi, có thể nhập lại trong Apidog: nhấp chuột phải vào Proto, sau đó nhấp nút "Reimport".

Phương thức gọi#

Khi định nghĩa các phương thức gRPC bằng tệp .proto, Apidog hỗ trợ bốn loại:
Unary: Lệnh gọi một chiều
Server Streaming: Streaming phía máy chủ
Client Streaming: Streaming phía máy khách
Bidirectional Streaming: Streaming hai chiều
Apidog hỗ trợ cả bốn loại phương thức.

Lệnh gọi Unary#

Các lệnh gọi Unary tương tự như yêu cầu HTTP. Nhập URL vào thanh địa chỉ, nhập nội dung thông điệp ở định dạng JSON trong tab Message, nhấp nút "Invoke", và lệnh gọi unary sẽ được khởi tạo.
Ngoài ra, bạn có thể điền thủ công thông tin Metadata và Auth để đáp ứng xác thực hoặc các kịch bản phức tạp khác.

Lệnh gọi Streaming#

Các lệnh gọi Streaming tương tự như kết nối WebSocket. Sau khi khởi tạo lệnh gọi, bạn có thể viết và gửi thông điệp trong tab Message. Server streaming, client streaming và bidirectional streaming thuộc các loại lệnh gọi streaming.
Apidog cung cấp chế độ xem timeline hiển thị tập trung trạng thái lệnh gọi, các thông điệp đã gửi và các thông điệp đã nhận theo thứ tự thời gian. Nhấp vào một thông điệp cho phép xem chi tiết thông điệp một cách dễ dàng.

Sử dụng nâng cao#

Tự động tạo giá trị động#

Apidog có thể nhận diện nội dung trong tệp .proto, cho phép bạn nhấp nút "Auto-generate" để tạo body thông điệp. Đối với dữ liệu động linh hoạt hơn, bạn có thể cấu hình và tạo biểu thức bằng tính năng "Dynamic Values".
Tham khảo "Dynamic Values" để biết hướng dẫn chi tiết hơn.

Sử dụng biến#

Bạn có thể sử dụng biến Apidog trong thông điệp gRPC và Metadata. Tham khảo tài liệu "Environment Variable Types" để biết hướng dẫn chi tiết.

Bật TLS#

API gRPC hỗ trợ thiết lập kết nối bảo mật thông qua TLS.
Khi sử dụng Apidog, bạn có thể nhấp vào bộ chọn giao thức phía trước URL để nhanh chóng chuyển đổi trạng thái TLS.
Ngoài ra, Apidog tương thích với việc sử dụng grpcs:// trong URL để bật TLS cho kết nối. Ngược lại, grpc:// cho biết TLS chưa được bật.

Quản lý địa chỉ máy chủ và môi trường#

Nhấp vào biểu tượng dấu cộng ở bên phải thanh địa chỉ URL để thêm địa chỉ máy chủ hiện đang sử dụng vào một môi trường.
Sau đó, chọn môi trường và địa chỉ máy chủ ở góc trên bên phải, rồi chọn "Follow Default" trong thanh địa chỉ URL để sử dụng một địa chỉ máy chủ thống nhất cho việc gỡ lỗi tất cả các phương thức.

Xem tệp Proto và tham số API#

Xem nội dung tệp Proto#

Trong Apidog, việc nhấp vào Proto trong cây thư mục bên trái cho phép bạn xem nội dung thô của tệp .proto.

Xem tham số yêu cầu và phản hồi#

gRPC sử dụng ProtoBuf làm định dạng tuần tự hóa, nghĩa là mỗi thông điệp được truyền ở định dạng ProtoBuf khi gửi hoặc nhận thông điệp. Không giống như các định dạng tuần tự hóa dựa trên văn bản khác (JSON, XML), ProtoBuf là định dạng nhị phân không phù hợp để con người viết và đọc. Do đó, khi gọi API gRPC trong Apidog, tất cả thông điệp đều được viết và hiển thị ở định dạng JSON.
Bạn có thể xem các tham số yêu cầu và phản hồi được biểu diễn ở định dạng JSON trên trang thông tin API.
ProtoBuf và JSON có mối quan hệ ánh xạ đối với các kiểu dữ liệu, như được trình bày trong bảng dưới đây:
ProtoBuf 3JSONVí dụ JSON
messageobject{"fooBar": v, "g": null, …}
enumstring"FOO_BAR"
map<K,V>object{"k": v, …}
repeated Varray[v, …]
boolbooleantrue, false
stringstring"Hello World!"
bytesbase64 string"YWJjMTIzIT8kKiYoKSctPUB+"
int32, fixed32, uint32number1, -10, 0
int64, fixed64, uint64string"1", "-10"
float, doublenumber1.1, -10.0, 0, "NaN", "Infinity"

Lưu thông tin gỡ lỗi#

Sau khi hoàn tất gỡ lỗi, nhấp nút "Save" để lưu URL máy chủ, thông điệp, Metadata, v.v. trong phương thức hiện tại để các thành viên khác trong nhóm gỡ lỗi.
Modified at 2026-06-11 10:23:06
Previous
Cách gửi yêu cầu GraphQL trong Apidog?
Next
Làm thế nào để gửi một yêu cầu SOAP/WebService trong Apidog?
Built with