AppEngine Google Cloud Endpoint - 未找到发现

Hyu*_*Kim 4 python google-app-engine google-cloud-endpoints

我是Python和Google AppEngine的新手,但有大约7年的编程经验.我也是StackOverflow的新手.

我一直在尝试为我的个人项目设置一个简单的Google Cloud Endpoint API,并已完成并将完成的应用程序上传到Google App Engine.

以下是我的Endpoint API设置:

@endpoints.api(name='puzzle', version='v1', description='Puzzle Engine API')
Run Code Online (Sandbox Code Playgroud)

和方法:

@endpoints.method(
        PuzzleMessage, PuzzleMessage,
        name='puzzle.generate',
        http_method='GET',
        path='generate'
    )

@endpoints.method(
        PuzzleMessage, PuzzleMessage,
        name='puzzle.solve',
        http_method='GET',
        path='solve'
    )
Run Code Online (Sandbox Code Playgroud)

我的app.yaml看起来像:

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.app

# Endpoints handler
- url: /_ah/api/.*
  script: services.application

libraries:
- name: webapp2
  version: "2.5.2"
Run Code Online (Sandbox Code Playgroud)

最后,services.py读取:

from google.appengine.ext import endpoints
from api import puzzle_api

application = endpoints.api_server([
                               puzzle_api.PuzzleAPI
                           ], restricted=False)
Run Code Online (Sandbox Code Playgroud)

现在,问题是,当我尝试访问https:// my-app-name .appspot.com/_ah/api/discovery/v1/apis时,我看到的只是

未找到

此外,当我点击https://developers.google.com/apis-explorer/?base=https:// my-app-name .appspot.com/_ah/api #p /上的API资源管理器时,列表服务是空的,在JavaScript控制台中,我在https:// my-app-name .appspot.com/_ah/api/discovery/v1/apis上看到404错误.

在本地测试服务器上访问这些URL会产生完全不同的错误.当我尝试在localhost:8080/_ah/api/discovery/v1/apis的本地测试服务器上访问API Discovery时,我得到了

{"error":{"message":"BackendService.getApiConfigs Error"}}

而不是"未找到".点击https://developers.google.com/apis-explorer/?base=http://localhost:8080/_ah/api#p/上的资源管理器,现在在JavaScript控制台中也会显示500错误而不是404错误.

我一直试图通过做很多谷歌搜索并尝试很多东西来解决这个问题,但我似乎无法继续下去.我非常感谢能从这个专业人士社区获得的任何帮助.

谢谢.

Aar*_*ton 9

请参阅此处的文档:https://developers.google.com/appengine/docs/python/endpoints/api_server

您需要执行以下操作:

将您的app.yaml更改为:

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /_ah/spi/.*
  script: services.application

- url: .*
  script: main.app

libraries:
- name: webapp2
  version: "2.5.2"
Run Code Online (Sandbox Code Playgroud)

:本网址应该是/_ah/spi/.*没有/_ah/api/.*.更改它,然后您可以访问您的api /_ah/api/explorer.