Конечные точки Google Cloud - метод не существует - спецификация OpenAPI yaml

Я пытаюсь настроить NodeJS REST API с помощью конечных точек Google Cloud и Google App Engine. Я клонировал официальный образец проекта с GitHub и настройте конечные точки Google Cloud с помощью Quickstart. Из коробки он работает нормально, но я попытался добавить еще одну конечную точку API для запроса GET на /, но после развертывания и отправки запроса я получил следующий ответ:

{
 "code": 5,
 "message": "Method does not exist.",
 "details": [
  {
   "@type": "type.googleapis.com/google.rpc.DebugInfo",
   "stackEntries": [],
   "detail": "service_control"
  }
 ]
}

Предварительно настроенные API-интерфейсы работают нормально, но не работают только новые, которые я добавляю.

Я правильно настроил новую конечную точку в своем приложении NodeJS (локально работает нормально). Соответствующий код, который я добавил:

app.get('/', function (req, res) {
  res.status(200).json({ message: 'Hello, world!' });
});

Я добавил в свой openapi.yaml файл следующее:

paths:
  "/":
    get:
      description: "Returns the message \"Hello, World\""
      operationId: "root"
      produces:
      - "application/json"
      responses:
        200:
          description: "Hello"
          schema:
            $ref: "#/definitions/helloMessage"
definitions:
  helloMessage:
    properties:
      message:
        type: "string"

После запуска gcloud service-management deploy openapi.yaml с терминала для развертывания и настройки конечных точек Google Cloud я получил имя службы и идентификатор конфигурации службы, которые я заменил в app.yaml, в формате, указанном в QuickStart.

endpoints_api_service:
  name: echo-api.endpoints.[YOUR-PROJECT-ID].cloud.goog
  config_id: YOUR-CONFIG-ID

(Это формат, я заменил YOUR-PROJECT-ID и YOUR-CONFIG-ID на нужные)

Я развернул приложение в Google App Engine с помощью gcloud app deploy. Я вижу, что приложение работает правильно, через консоль Google App Engine.

Тем не менее, метод GET на / не определяется как допустимая конечная точка, и я получаю ответ, как указано выше.

Я что-то упускаю? Я много искал по этой проблеме, но ничего полезного / похожего не нашел!

PS: Под добавленным я подразумеваю код, который я добавил в соответствующий клонированные файлы GitHub



РЕДАКТИРОВАТЬ: я изменил конечную точку API с / на /hello, и она отлично работает !! Невозможно понять, почему та же функция на / не работает на конечных точках Google Cloud (хотя работает локально!)


person Abhilash Kishore    schedule 29.03.2017    source источник
comment
Я пытаюсь настроить то же самое для Node api, но не могу получить доступ к конечной точке после развертывания. Я следил за всеми упомянутыми наборами здесь Я следил за ЭТО руководство по началу работы , но по-прежнему не может этого сделать. Я вижу, что мои Сервисы создаются, но когда я пытаюсь их использовать, они не работают   -  person farhankhwaja    schedule 07.11.2017


Ответы (1)


Конечные точки Google Cloud в настоящее время не поддерживают корневой путь в «/». Это то, что изучается.

person Wesley Wong    schedule 30.03.2017
comment
Любая документация / официальное слово по этому поводу? - person Abhilash Kishore; 30.03.2017