Как отправить запросы на конечные точки транскодера gRPC-JSON? - PullRequest
0 голосов
/ 19 мая 2019

После этого (я думаю, точно): https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/grpc_json_transcoder_filter

Я следую конфигурации в документации, и моя служба gRPC включена :50051, а транскодер gRPC-JSON прослушивает :51051.

Я могу отправить запросы gRPC к транскодеру:

grpcurl \
--plaintext \
--import-path=${HELLOWORLD} \
--import-path=${GOOGLEAPIS} \
--proto=helloworld/helloworld.proto \
-d '{"name":"Freddie"}' \
:51051 \
helloworld.Greeter/SayHello
{
  "message": "Hello Freddie"
}

Но я не могу определить, как правильно отправлять REST-запросы к нему:

curl \
--request GET \
--header "Content-Type: application/json" \
--data '{"name":"Freddie"}' \
http://0.0.0.0:51051/helloworld.Greeter/SayHello

curl \
--header "Content-Type: application/json" \
--data '{"name":"Freddie"}' \
http://0.0.0.0:51051/say

curl \
--request GET \
--header "Content-Type: application/json" \
http://0.0.0.0:51051/say?name=Freddie

Я пробовал с | без заголовков, с --insecure и https, используя --request POST и --request GET все безуспешно.

Все результаты в:

upstream connect error or disconnect/reset before headers. reset reason: remote reset

Буду признателен за руководство по устранению неполадок этого типа. Посланник ничего не записывает в стандартный вывод, соответствующий этим запросам, и консоль администратора также не содержит (очевидного) объяснения.

Спасибо!

1 Ответ

0 голосов
/ 19 мая 2019

Хммм ... Я воспроизвел решение на другом компьютере, и оно работает:

Варианты работы:

curl \
--header "Content-Type: application/json" \
http://localhost:51051/say?name=Frederik
{
 "message": "Hello Frederik"
}

curl http://localhost:51051/say?name=Frederik
{
 "message": "Hello Frederik"
}

Неработающие (неверные) варианты:

curl \
--header "Content-Type: application/grpc" \
http://localhost:51051/say

curl \
--data '{"name":"Henry"}' \
http://localhost:51051/say
upstream connect error or disconnect/reset before headers. reset reason: remote reset
...