1

我正在使用 gRPC-Gateway实现https://todobackend.com/ 。https://todobackend.com/的规范要求一些响应采用 JSON 数组的形式,例如:

GET /todos
=> [{ "title": "...", ... }, { ... }]

但是通过使用 gRPC-Gateway AFAIK,我必须返回对象,例如{ "todos": [{ ... }, { ... }] }. 我可以返回数组而不是对象吗?

4

1 回答 1

1

我找到了这个线程并让它与response_body选项以及allow_repeated_fields_in_bodyCLI 参数一起使用。

  rpc Add(Todo) returns (Todo) {
    option (google.api.http) = {
      post: "/v1/todos",
      body: "*"
    };
  };
protoc -I proto/ -I googleapis \
  --go_out ./proto --go_opt paths=source_relative \
  --go-grpc_out ./proto --go-grpc_opt paths=source_relative \
  --grpc-gateway_out=allow_repeated_fields_in_body=true:./proto --grpc-gateway_opt paths=source_relative \
  ./proto/todo/todo.proto
# note "allow_repeated_fields_in_body=true"
于 2021-03-01T10:33:22.160 回答