Как создать подписку используя http API эмулятора pubsub? - PullRequest
0 голосов
/ 29 апреля 2020

После запуска эмулятора pubsub я пытаюсь создать topi c и подписку, используя HTTP API. Создание topi c успешно, но я не могу понять, почему создание подписки не удается. Я делаю что-то не так или это ошибка в инструменте? Вы можете увидеть журналы ниже:

$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/topics/mytopic
{
  "name": "projects/myproject/topics/mytopic"
}

$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/subscriptions/mysub \
    --data '{"topic":"projects/myproject/topics/mytopic"}'
Not Found

На стороне эмулятора я вижу следующее:

# create topic logs
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, 2020 10:37:19 AM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected HTTP/2 connection.

# create subscription logs
[pubsub] Apr 29, 2020 10:37:27 AM io.gapi.emulators.grpc.GrpcServer$3 operationComplete
[pubsub] INFO: Adding handler(s) to newly registered Channel.
[pubsub] Apr 29, 2020 10:37:27 AM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
[pubsub] INFO: Detected non-HTTP/2 connection.
[pubsub] Apr 29, 2020 10:37:27 AM io.gapi.emulators.netty.NotFoundHandler handleRequest
[pubsub] INFO: Unknown request URI: /v1/projects/myproject/subscriptions/mysub

1 Ответ

0 голосов
/ 29 апреля 2020

Даже если создание topi c работает с вышеуказанной командой (тип содержимого не требуется), для отправки данных с параметром --data '...' также необходимо отправить заголовок типа содержимого. Таким образом, следующая команда работает:

$ curl -s -X PUT http://localhost:8085/v1/projects/myproject/subscriptions/mysub \
    -H 'content-type: application/json' \
    --data '{"topic":"projects/myproject/topics/mytopic"}'

...