BloomRPC từng là câu trả lời đơn giản cho câu hỏi “Postman cho gRPC của tôi đâu?”. Bạn tải tệp .proto, chỉnh sửa JSON request rồi gửi. Tuy nhiên, kho lưu trữ BloomRPC đã bị ngừng phát triển từ ngày 4/1/2023 và README khuyến nghị không tiếp tục sử dụng. Nếu đang cần thay thế, Apidog phù hợp cho hầu hết nhóm vì hỗ trợ gRPC cùng REST, WebSocket và GraphQL trong một workspace, bao gồm cả cấu hình gỡ lỗi, kiểm thử và tài liệu.
BloomRPC là gì và vì sao không nên dùng nữa?
BloomRPC là ứng dụng desktop Electron ra mắt năm 2018 để gọi gRPC mà không cần tự viết client. Quy trình của nó rất trực tiếp:
- Nhập tệp
.proto. - Chọn service và RPC method.
- Chỉnh sửa request dưới dạng JSON.
- Thêm metadata.
- Gửi request và xem response.
Công cụ này từng phù hợp với unary call và một số trường hợp streaming cơ bản. Nhưng một kho đã ngừng phát triển đồng nghĩa với:
- Không có bản vá lỗi hoặc cập nhật bảo mật.
- Không có cập nhật dependency Electron, Chromium hoặc Node.
- Các lỗi import proto và streaming hiện có sẽ không được xử lý.
- Không có bản phát hành mới để hỗ trợ các thay đổi trong hệ sinh thái gRPC.
Vấn đề không chỉ là tìm một GUI khác. Hầu hết backend hiện nay dùng song song gRPC và REST, vì vậy việc tách hai quy trình debug sang hai công cụ độc lập làm tăng chi phí vận hành. Một ứng dụng khách gRPC tốt nên hỗ trợ nhiều hơn việc “tải proto và gửi request”.
Thay thế BloomRPC bằng Apidog
Apidog là nền tảng phát triển API hỗ trợ thiết kế, gỡ lỗi, kiểm thử, mocking và tài liệu. Theo tài liệu gRPC chính thức, bạn có thể dùng Apidog để thay thế trực tiếp quy trình BloomRPC và mở rộng nó cho cả nhóm.
1. Gọi đủ bốn loại gRPC
Apidog hỗ trợ:
- Unary
- Server streaming
- Client streaming
- Bidirectional streaming
Với streaming, request không chỉ là một lần gửi/nhận. Bạn có thể mở phiên, gửi nhiều message và theo dõi message đã gửi hoặc nhận theo dòng thời gian.
2. Nhập API theo ba cách
Bạn có thể tạo gRPC API từ:
- Tệp
.prototrên máy. - URL trỏ tới tệp
.proto. - Server reflection từ gRPC server đang chạy.
Nếu proto có import dependency, hãy thêm thư mục chứa dependency khi cấu hình import.
3. Chỉnh sửa request bằng JSON
Apidog hiển thị protobuf message dưới dạng JSON có thể chỉnh sửa, tương tự BloomRPC. Ví dụ, với proto:
service UserService {
rpc GetUser(GetUserRequest) returns (UserResponse);
}
message GetUserRequest {
string id = 1;
}
Bạn có thể gửi request:
{
"id": "user_123"
}
Nếu cần hiểu kỹ cách ánh xạ dữ liệu, xem hướng dẫn protobuf sang JSON.
4. Cấu hình TLS, metadata và xác thực
Với từng request, bạn có thể:
- Chọn
grpc://hoặcgrpcs://. - Thêm metadata.
- Lưu token hoặc cấu hình xác thực cùng request.
- Dùng lại cấu hình đã lưu thay vì dán header thủ công mỗi lần.
Đối với token và mTLS, tham khảo các thực hành tốt về xác thực gRPC.
5. Lưu và chia sẻ cấu hình debug
Khác với BloomRPC, request gRPC trong Apidog có thể được lưu trong project. Điều này giúp nhóm chia sẻ:
- Địa chỉ server.
- Request body.
- Metadata.
- Thiết lập TLS.
- Kịch bản kiểm thử.
- Tài liệu API.
Cách thực hiện một gRPC call sau khi chuyển đổi
Quy trình hằng ngày gần như giống BloomRPC, nhưng có thể lưu lại và chia sẻ.
- Tạo hoặc mở project trong Apidog.
- Nhập tệp
.proto, URL proto hoặc kết nối qua server reflection. - Chọn service và method.
- Nhập URL server.
- Chọn
grpc://hoặcgrpcs://. - Điền JSON request.
- Thêm metadata hoặc cấu hình xác thực.
- Gửi request.
- Lưu request để tái sử dụng.
Ví dụ metadata:
authorization: Bearer <your-token>
x-request-id: debug-001
gRPC trả về status code riêng thay vì HTTP status code. Trong tuần đầu khi chuyển đổi, nên để sẵn tài liệu mã trạng thái gRPC.
Làm việc với gRPC streaming
Streaming là điểm BloomRPC có nhiều hạn chế nhất. Trong Apidog, hãy xử lý streaming như một phiên kết nối trực tiếp:
- Chọn RPC method có kiểu streaming.
- Mở phiên gọi.
- Gửi từng message từ tab message.
- Quan sát message gửi và nhận trong timeline.
- Đóng phiên khi hoàn tất.
Ví dụ proto cho bidirectional streaming:
service ChatService {
rpc Chat(stream ChatMessage) returns (stream ChatMessage);
}
message ChatMessage {
string user = 1;
string content = 2;
}
Bạn có thể gửi lần lượt:
{
"user": "alice",
"content": "Xin chào"
}
{
"user": "alice",
"content": "Bạn có ở đó không?"
}
Để chọn đúng kiểu streaming cho service, xem giải thích về truyền phát gRPC.
Dùng server reflection khi không có proto
Nếu server đã bật reflection, bạn không cần tìm đúng phiên bản .proto để debug nhanh.
Quy trình:
- Tạo gRPC request mới.
- Nhập địa chỉ gRPC server.
- Chọn import hoặc khám phá service bằng server reflection.
- Duyệt các service và method được server công bố.
- Chọn method, điền request JSON và gửi.
Cách này đặc biệt hữu ích khi kiểm tra staging hoặc debug service do nhóm khác sở hữu.
BloomRPC so với Apidog
| Tính năng | BloomRPC | Apidog |
|---|---|---|
| Trạng thái | Ngừng phát triển từ tháng 1/2023 | Đang được phát triển |
| Unary call | Có | Có |
| Server/client/bidirectional streaming | Một phần, có lỗi đã biết | Hỗ trợ cả bốn loại call |
| Import proto | Tệp .proto cục bộ |
Tệp cục bộ, URL, server reflection |
| TLS | Cơ bản | Chọn grpc:// hoặc grpcs:// theo request |
| Metadata và xác thực | Chỉnh sửa metadata | Metadata và cấu hình xác thực |
| Chia sẻ nhóm | Không, chỉ cục bộ | Lưu và chia sẻ trong workspace |
| Giao thức khác | Chỉ gRPC | REST, WebSocket, SSE, GraphQL, gRPC |
| Kiểm thử, mock, tài liệu | Không có | Trong cùng project |
| Giá | Miễn phí nhưng bị bỏ rơi | Gói miễn phí tối đa 4 người dùng |
Di chuyển từ BloomRPC sang Apidog
BloomRPC không có dữ liệu cấu hình di động đáng kể để export. Việc chuyển đổi chủ yếu là tái tạo cấu hình từ repo và server hiện có.
Bước 1: Thu thập tệp .proto
Tìm proto trong repository của bạn. Đây là phần quan trọng nhất của quá trình chuyển đổi.
Ví dụ cấu trúc:
api/
├── proto/
│ ├── user.proto
│ ├── order.proto
│ └── common/
│ └── types.proto
Bước 2: Nhập proto vào Apidog
Trong Apidog:
- Tạo project.
- Chọn import gRPC proto.
- Thêm các tệp
.proto. - Nếu proto có import, thêm thư mục dependency.
- Kiểm tra service và RPC method đã được nhận diện.
Hoặc dùng server reflection để bỏ qua hoàn toàn bước import tệp.
Bước 3: Cấu hình server và TLS
Nhập endpoint đích, ví dụ:
grpc://localhost:50051
Hoặc với TLS:
grpcs://api.example.com:443
Bước 4: Tạo lại metadata và xác thực
Thêm lại các header, token hoặc thông tin xác thực trước đây bạn từng dán vào BloomRPC.
Ví dụ:
authorization: Bearer <token>
x-tenant-id: tenant-a
Sau đó lưu request để không phải nhập lại.
Bước 5: Lưu và chia sẻ request
Đặt tên request theo mục đích, chẳng hạn:
UserService / GetUser / staging
OrderService / CreateOrder / local
ChatService / Chat / development
Các request này sau đó có thể trở thành bộ cấu hình debug dùng chung cho cả nhóm.
Với một người đang dùng BloomRPC, các bước từ import proto đến gửi request đầu tiên thường chỉ mất khoảng mười phút.
Những lựa chọn thay thế BloomRPC khác
Apidog phù hợp khi gRPC là một phần trong quy trình API lớn hơn. Nếu nhu cầu hẹp hơn, các công cụ sau vẫn đáng cân nhắc.
-
grpcurl: công cụ dòng lệnh tương tự
curlcho gRPC. Phù hợp với shell script, CI và kiểm tra ad-hoc trên server đã bật reflection. Xem thêm bài so sánh giải pháp thay thế grpcurl tốt nhất. - grpcui: giao diện web tạm thời cho gRPC server, phù hợp khi cần kiểm tra nhanh nhưng không cần lưu trạng thái.
- Kreya: desktop client cho gRPC và REST, gần với mô hình BloomRPC hơn nếu bạn muốn một công cụ độc lập. Xem Kreya là gì và giải pháp thay thế Kreya tốt nhất.
- Postman: đã hỗ trợ gRPC từ năm 2022. Đây là lựa chọn khả thi nếu nhóm đã dùng Postman, nhưng các đánh đổi về giá và workspace vẫn cần được cân nhắc. Tham khảo giải pháp thay thế Postman tốt nhất.
- evans: REPL gRPC cho terminal, phù hợp với người thích workflow tương tác trong terminal hoặc tmux.
Tóm lại:
- Dùng CLI và CI: chọn
grpcurl. - Cần client gRPC độc lập: cân nhắc Kreya.
- Cần gRPC, REST, kiểm thử và tài liệu trong cùng workspace: dùng Apidog.
Câu hỏi thường gặp
BloomRPC còn được duy trì không?
Không. Repository bị ngừng phát triển từ ngày 4/1/2023 và README khuyến nghị không nên tiếp tục sử dụng. Không có bản vá bảo mật, sửa lỗi hoặc bản phát hành mới. Khi chọn ứng dụng khách gRPC cho project mới, không nên xem BloomRPC là một lựa chọn khả thi.
Có thể import thiết lập BloomRPC vào Apidog không?
Không có file import trực tiếp vì BloomRPC không lưu cấu hình di động có ý nghĩa. Thay vào đó:
- Import proto từ repository hoặc dùng server reflection.
- Nhập URL server và TLS.
- Tạo lại metadata, token và request body.
- Lưu request trong Apidog.
Sau khi hoàn tất, cấu hình không còn bị khóa trên một máy local.
Apidog có hỗ trợ gRPC streaming không?
Có. Apidog hỗ trợ unary, server streaming, client streaming và bidirectional streaming. Các phiên streaming cho phép gửi message liên tục và theo dõi lưu lượng trong timeline. Xem thêm truyền phát gRPC.
Nếu chỉ cần gọi gRPC nhanh từ terminal thì sao?
Dùng grpcurl. Đây là lựa chọn phù hợp cho script, CI và truy vấn ad-hoc, đặc biệt khi server bật reflection. Bài viết về giải pháp thay thế grpcurl giải thích khi nào CLI không còn đáp ứng đủ nhu cầu.
Có thể kiểm thử gRPC và REST bằng một công cụ không?
Có. Trong Apidog, gRPC, REST, WebSocket, SSE và GraphQL có thể nằm trong cùng project. Điều này hữu ích cho backend cung cấp cả gRPC nội bộ và REST API công khai. Xem quy trình trong hướng dẫn kiểm thử API gRPC.
Ngừng dùng client đã bị ngừng phát triển
BloomRPC đã hoàn thành vai trò lịch sử của nó, nhưng không còn phù hợp với setup mới. Hãy import các tệp .proto vào Apidog hoặc kết nối qua server reflection, cấu hình endpoint và metadata, rồi lưu các request để cả nhóm có thể dùng lại.
Bạn có thể tải xuống Apidog miễn phí. Gói miễn phí hỗ trợ tối đa 4 người dùng, và các tệp proto trong repository là dữ liệu chính bạn cần để bắt đầu chuyển đổi.
Top comments (0)