Я не получаю действительный ответ, когда curl
с аннотированной конечной точкой REST от протоброфа GRPC
В настоящее время я использую сервер книжного магазина с здесь
Мне удалось успешно подключиться к конечной точке через GRPC с помощью предоставленного клиента.
$ python bookstore_client.py
ListShelves: shelves {
id: 1
theme: "Fiction"
}
shelves {
id: 2
theme: "Fantasy"
}
Когда я пытаюсь попасть в соответствующую конечную точку REST, он возвращает мне не-текстовый (т.е. не JSON) ответ
$ curl --raw --http2 localhost:8000/v1/shelves 2>/dev/null | xxd
00000000: 0000 1804 0000 0000 0000 0400 4000 0000 ............@...
00000010: 0500 4000 0000 0600 0020 00fe 0300 0000 ..@...... ......
00000020: 0100 0004 0800 0000 0000 003f 0001 0000 ...........?....
00000030: 0806 0000 0000 0000 0000 0000 0000 00 ...............
Я получаю этот ответ независимо от того, что такое URI, то есть /v1/foobar
дает тот же результат
Вот соответствующие строки из protobuf
rpc ListShelves(google.protobuf.Empty) returns (ListShelvesResponse) {
// Define HTTP mapping.
// Client example (Assuming your service is hosted at the given 'DOMAIN_NAME'):
// curl http://DOMAIN_NAME/v1/shelves
option (google.api.http) = { get: "/v1/shelves" };
}
Я ожидал того же ответа, который дал мне клиент Python, но я получаю нетекстовый ответ от сервера GRPC.