首页 > 解决方案 > ASP.NET Core JSON-RPC

问题描述

我已经创建了核心 WebAPI 项目,虽然 RESTing 执行得非常好,但也需要 JSON-RPC 功能。我看到了这样这样的东西,但仍然不知道其中哪一个更适合组织服务器和客户端(也是 aspnetcore)作为 WCF 之类的良好替代品。

那么如何以正确的方式用 ASP.NET Core 做 JSON-RPC 呢?

标签: c#asp.net-coreasp.net-core-webapijson-rpc

解决方案


你可以从 James Newton-King 那里找到一个很好的例子。

Newtonsoft.Json创建者创建了一个与 gRPC 和 ASP.NET 配合使用的项目。

在这里查看: https ://github.com/aspnet/AspLabs/tree/master/src/GrpcHttpApi

以及自述文件中的一个示例:

用法:

  • 添加对 Microsoft.AspNetCore.Grpc.HttpApi 的包引用。

  • 使用 .在 Startup.cs 中注册服务AddGrpcHttpApi()

  • 将 google/api/http.proto 和 google/api/annotations.proto 文件添加到您的项目中。

  • 使用 HTTP 绑定和路由在 .proto 文件中注释 gRPC 方法:

syntax = "proto3";

import "google/api/annotations.proto";

package greet;

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply) {
    option (google.api.http) = {
      get: "/v1/greeter/{name}"
    };
  }
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

SayHello gRPC 方法现在可以作为 gRPC+Protobuf 和 HTTP API 调用:


推荐阅读