我试图使用gRPC来构建一个简单的CRUD服务,但我一直发现自己创建了大量重叠的消息。
这最好用一个例子来描述:
message Todo {
// id is only available for a persisted entity in database.
string id = 1;
string content = 2;
// this is only available for users with admin role.
string secret_content = 3;
}
service Todos {
rpc CreateTodo(CreateRequest) returns (CreateResponse) {}
rpc ReadTodo(ReadRequest) returns (ReadResponse) {}
}
message CreateRequest {
// this todo is not supposed to have id,
// should I create another version of Todo without an id field?
Todo todo
}
message CreateResponse {
// this todo will always have an id.
Todo todo = 1;
}
message ReadRequest {
string id = 1;
}
message ReadResponse {
// this todo should only have the secret_content field if the
// user is authenticated as an admin, if not, the field should not
// fallback to the zero value, the whole field must be missing.
Todo todo = 1;
}
这是使用gRPC构建类似CRUD的资源的好方法吗?也就是说,有一条代表资源的消息(Todo
),并将该消息包装为每个操作的响应/请求类型。
待办事项类型消息是否应该包含所有请求/响应所涵盖的所有字段,而不是设置每个都不使用的字段?
待办事项类型消息是否应该包含所有请求/响应所涵盖的所有字段,而不是设置每个都不使用的字段?
是的,这似乎是一个合理的设计。在协议v2中,您会将这些字段标记为可选
以使其更容易理解。但在v3中,无论如何,所有字段默认都是可选的。
根据这个http://www.grpc.io/docs/tutorials/basic/python.html#creating-这里的服务器和示例https://github.com/grpc/grpc/tree/v1.0.0/examples/python/route_guide,当我生成我的pb2时。py文件中,应创建几个名为Stub和Servicer的类。但是,我生成了pb2。py文件不包
有必要将通用GRPC服务器实现为存根。 找不到与服务器类似的内容,仅针对客户端。 非常感谢!
2.4 多服务&多监听 2.4.1 在Go代码中声明 假定用户需要创建的Web服务 服务名称 版本号 监听地址 网络类型 读取请求数据超时 写入响应数据超时 myapp1 1.0 0.0.0.0:8080、0.0.0.0:4430 http、https(TLS) 0 0 myapp2 2.0 0.0.0.0:8081、0.0.0.0:4431 http、https(TLS) 0 0 无版本号的服务
我们想推出一个新的开源项目,将作为一个桌面应用程序。我们希望使用Java Spring for business logic(后端)和Flutter构建GUI(就像我们可以创建移动和web应用程序一样)。 其想法是,用户可以选择将其Flutter desktop应用程序作为独立应用程序使用(业务逻辑在本地用java spring处理),或者将其桌面应用程序连接到我们提供的外部服务器java spr
我正试图在谷歌云平台上创建一个服务账户,该账户只能访问谷歌驱动API。然而,我根本找不到这个角色: 此外,如果我创建了一个“通用服务帐户”,那么该用户可以添加实例等。这在过去是一个可怕的安全问题,因为拥有该密钥的用户实际上创建了未经授权的实例(因此出现了上述问题)。 我该如何创建一个可以访问Google Drive API的服务帐户,而不是别的?
我有一个方法,可以启动一个简单的cpp grpc服务器。 我想做