1

我試圖安裝使用谷歌雲端點和谷歌應用程序引擎的NodeJS REST API。我從GitHub克隆中的官樣的項目並使用Quickstart組建谷歌雲端點。開箱即用,它工作正常,但我嘗試添加另一API端點在/ GET請求,但在我,我得到的響應部署和提出請求如下:谷歌雲端點 - 方法不存在 - OpenAPI的YAML規範

{ 
"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後部署和配置谷歌雲端點,我得到的服務名稱和服務配置ID,這是我在app.yaml已經取代,由快速啓動指定的格式

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

(這是格式,我把它換成YOUR-PROJECT-IDYOUR-CONFIG-ID用正確的)

我使用gcloud app deploy部署的應用谷歌應用程序引擎。我可以通過Google App Engine控制檯看到應用程序正常運行。

然而,/上的GET方法未被識別爲有效端點,並且我得到如上所述的響應。

我錯過了什麼嗎?我搜索了很多關於這個問題,但整個有用的東西/同類沒來!

PS:通過添加,我的意思是,這是我已經添加到相應的GitHub cloned files



編輯代碼: 我從改變了API端點//hello並能正常工作!無法理解爲什麼/上的相同功能在Google Cloud Endpoints上無效(本地工作!)

+0

我正在嘗試爲Node api設置相同的值,但部署完成後我無法訪問端點。我跟着[這裏]提到的所有集合(https://cloud.google.com/endpoints/docs/openapi/get-started-app-engine) 我跟着[THIS](https://github.com/GoogleCloudPlatform /nodejs-docs-samples/blob/master/endpoints/getting-started/openapi-appengine.yaml)開始使用指南,但仍無法做到。我可以看到我的服務正在創建,但是當我嘗試使用它時不起作用 – farhankhwaja

回答

2

Google Cloud Endpoints當前不支持「/」處的根路徑。這是正在研究的內容。

+3

關於此問題的任何文檔/官方文字? –