Sử dụng gRPC trong các ứng dụng trình duyệt
Nguồn: Use gRPC in browser apps
Không thể gọi trực tiếp một gRPC service từ trình duyệt. gRPC sử dụng các tính năng HTTP/2, và không có trình duyệt nào cung cấp mức độ kiểm soát cần thiết đối với các web request để hỗ trợ gRPC client.
gRPC trên ASP.NET Core cung cấp hai giải pháp tương thích với trình duyệt: gRPC-Web và gRPC JSON transcoding (chuyển mã gRPC JSON).
gRPC-Web
gRPC-Web cho phép các ứng dụng trình duyệt gọi gRPC services bằng gRPC-Web client và Protobuf.
- Tương tự như gRPC thông thường, nhưng có giao thức truyền tải (wire-protocol) hơi khác, làm cho nó tương thích với HTTP/1.1 và các trình duyệt.
- Yêu cầu ứng dụng trình duyệt tạo gRPC client từ file
.proto. - Cho phép các ứng dụng trình duyệt hưởng lợi từ hiệu năng cao và mức sử dụng băng thông thấp của các tin nhắn nhị phân.
.NET có hỗ trợ tích hợp sẵn cho gRPC-Web. Để biết thêm thông tin, xem gRPC-Web trong các ứng dụng ASP.NET Core gRPC.
gRPC JSON transcoding (chuyển mã gRPC JSON)
gRPC JSON transcoding cho phép các ứng dụng trình duyệt gọi gRPC services như thể chúng là các RESTful API với JSON.
- Ứng dụng trình duyệt không cần tạo gRPC client hoặc biết bất cứ điều gì về gRPC.
- RESTful APIs được tự động tạo ra từ gRPC services bằng cách chú thích file
.protovới HTTP metadata. - Cho phép ứng dụng hỗ trợ cả gRPC lẫn JSON web API mà không cần tốn công xây dựng các service riêng biệt cho cả hai.
.NET có hỗ trợ tích hợp sẵn để tạo JSON web API từ gRPC services. Để biết thêm thông tin, xem gRPC JSON transcoding trong các ứng dụng ASP.NET Core gRPC.
Lưu ý: gRPC JSON transcoding yêu cầu .NET 7 trở lên.