gRPC là một framework Gọi thủ tục từ xa (Remote Procedure Call - RPC) hiệu năng cao, hiệu quả, được áp dụng rộng rãi trong các hệ thống phân tán hiện đại. Trong kiến trúc microservices, gRPC hỗ trợ giao tiếp hiệu quả giữa các dịch vụ với độ trễ thấp và mức tiêu thụ băng thông giảm nhờ khả năng streaming và cơ chế tuần tự hóa Protocol Buffers.Điều kiện tiên quyết#
Trước khi sử dụng gRPC trong Apidog, hãy đảm bảo bạn có:Apidog phiên bản 2.3.1 trở lên
Các tệp .proto định nghĩa dịch vụ và phương thức gRPC của bạn
Quyền truy cập vào endpoint máy chủ gRPC
Tạo dự án gRPC#
Để tạo một dự án gRPC mới:1.
Nhấp vào "New Project" trên trang chủ Apidog
Nhập tệp Proto#
gRPC tuân theo phương pháp API-First, yêu cầu các dịch vụ, phương thức và thông điệp phải được định nghĩa thông qua tệp .proto trước khi phát triển. Nhập tệp .proto của bạn để bắt đầu gỡ lỗi API gRPC trong Apidog.Nhập lần đầu#
Apidog hỗ trợ ba phương thức nhập:| Phương thức | Mô tả |
|---|
| Local File | Tải lên một tệp .proto từ hệ thống tệp cục bộ của bạn |
| URL | Nhập từ một URL lưu trữ tệp .proto |
| Server Reflection | Tự động phát hiện dịch vụ từ máy chủ gRPC |
Tệp .proto được chọn sẽ được nhập dưới dạng một Proto, trong đó:Services được nhập dưới dạng dịch vụ
RPC methods được nhập dưới dạng phương thức
Dependencies phải được thêm thủ công nếu tệp .proto phụ thuộc vào các tệp khác
Related services từ các tệp .proto phụ thuộc có cùng package cũng được nhập
Nhập lại tệp Proto#
Khi tệp .proto của bạn thay đổi, hãy cập nhật tệp đó trong Apidog:1.
Nhấp chuột phải vào Proto trong cây thư mục
Phương thức gọi#
gRPC hỗ trợ bốn loại phương thức khi định nghĩa API trong tệp .proto. Apidog hỗ trợ cả bốn loại:| Loại phương thức | Mô tả |
|---|
| Unary | Một yêu cầu, một phản hồi (tương tự HTTP) |
| Server Streaming | Một yêu cầu, nhiều phản hồi từ máy chủ |
| Client Streaming | Nhiều yêu cầu từ client, một phản hồi |
| Bidirectional Streaming | Nhiều yêu cầu và phản hồi theo cả hai chiều |
Cuộc gọi Unary#
Cuộc gọi Unary hoạt động tương tự như yêu cầu HTTP:1.
Nhập URL máy chủ vào thanh địa chỉ
2.
Nhập nội dung thông điệp ở định dạng JSON trong tab Message
3.
Nhấp vào "Invoke" để bắt đầu cuộc gọi
Bạn cũng có thể cấu hình thông tin Metadata và Auth cho xác thực hoặc các tình huống phức tạp.Cuộc gọi Streaming#
Cuộc gọi Streaming hoạt động tương tự như kết nối WebSocket. Sau khi bắt đầu cuộc gọi, bạn có thể viết và gửi thông điệp trong tab Message.Apidog cung cấp chế độ xem dòng thời gian hiển thị:Thông điệp đã nhận (theo thứ tự thời gian)
Nhấp vào bất kỳ thông điệp nào để xem chi tiết.Tính năng nâng cao#
Tự động tạo giá trị động#
Apidog nhận diện nội dung tệp .proto, cho phép tự động tạo message body:1.
Nhấp vào nút "Auto-generate" để tạo cấu trúc thông điệp
2.
Sử dụng tính năng "Dynamic Values" để tạo dữ liệu động, linh hoạt
Sử dụng biến#
Có thể sử dụng biến Apidog trong thông điệp gRPC và Metadata để chèn dữ liệu động.Bật TLS#
API gRPC hỗ trợ kết nối bảo mật thông qua TLS (Transport Layer Security).Nhấp vào bộ chọn giao thức trước URL để chuyển đổi trạng thái TLS
Sử dụng grpcs:// trong URL để bật TLS
Sử dụng grpc:// để tắt TLS
Quản lý địa chỉ máy chủ và môi trường#
Thêm địa chỉ máy chủ#
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 tại vào một môi trường.Sử dụng địa chỉ máy chủ của môi trường#
1.
Chọn môi trường và địa chỉ máy chủ ở góc trên bên phải
2.
Chọn "Follow Default" trong thanh địa chỉ URL để sử dụng một địa chỉ máy chủ thống nhất khi gỡ lỗi tất cả phương thức
Xem tệp Proto và tham số API#
Nội dung tệp Proto#
Nhấp vào Proto trong cây thư mục bên trái để xem nội dung thô của tệp .proto.Tham số yêu cầu và phản hồi#
gRPC sử dụng Protocol Buffers (ProtoBuf) làm định dạng tuần tự hóa. Khác với các định dạng dựa trên văn bản (JSON, XML), ProtoBuf là định dạng nhị phân, không phù hợp để con người đọc hoặc viết trực tiếp.Trong Apidog, tất cả thông điệp gRPC được viết và hiển thị ở định dạng JSON để dễ sử dụng. Bạn có thể xem tham số yêu cầu và phản hồi ở định dạng JSON trên trang thông tin API.Ánh xạ kiểu từ ProtoBuf sang JSON#
| ProtoBuf 3 | JSON | Ví dụ JSON |
|---|
| message | object | {"fooBar": v, "g": null, …} |
| enum | string | "FOO_BAR" |
| map<K,V> | object | {"k": v, …} |
| repeated V | array | [v, …] |
| bool | boolean | true, false |
| string | string | "Hello World!" |
| bytes | base64 string | "YWJjMTIzIT8kKiYoKSctPUB+" |
| int32, fixed32, uint32 | number | 1, -10, 0 |
| int64, fixed64, uint64 | string | "1", "-10" |
| float, double | number | 1.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 vào nút "Save" để lưu:Điều này cho phép các thành viên trong nhóm tái sử dụng thiết lập gỡ lỗi của bạn. Modified at 2026-06-11 10:23:06