3

正如标题所示,我的 API 在资源管理器中不可见,我的所有日​​志显示如下:

INFO     2013-03-08 13:39:08,182 dev_appserver.py:723] Internal redirection to http://127.0.0.1:8080/_ah/spi/BackendService.getApiConfigs
INFO     2013-03-08 13:39:08,198 dev_appserver.py:3104] "GET /_ah/api/discovery/v1/apis HTTP/1.1" 500 -

我的 app.yaml 文件中的相关处理程序如下所示:

13 # Endpoint handlers
14 - url: /_ah/spi/.*
15   script: main.app

我的 main.py 代码如下:

from google.appengine.ext import endpoints
from protorpc import messages

class   Location(messages.Message):
    reg_id = messages.StringField(1)
    phone_number = messages.StringField(2)
    latitude = messages.StringField(3)
    longitude = messages.StringField(4)

@endpoints.api(name='locations', version='v1', description='Location API for where are you app')
class LocationApi(remote.Service):
    @endpoints.method(Location, Location, name='location.insert', path='location', http_method='POST')
    def insert(self, request):
        return request

app = endpoints.api_server([LocationApi])

有人知道我做错了什么吗?

4

3 回答 3

1

请检查以下内容:

  1. 正如您应该能够从日志中看到的那样,您遇到了导入错误。在main.py添加这个

    from protorpc import remote
    
  2. 文档中:

    注意:如果您想使用 Google API Explorer 测试经过身份验证的 API 调用,您还必须提供其客户端 ID,该 ID 可通过 Endpoints 库以endpoints.API_EXPLORER_CLIENT_ID.

  3. 再次检查您的日志以确保代码实际运行。由于引发了 Python 异常,您得到了 500,并且您的代码可能存在其他问题,尽管它看起来不像您发布的内容。

于 2013-03-11T06:50:56.790 回答
1

现在,我在其他处理程序之前列出了端点处理程序。

这有效:

handlers:
# Endpoint handler
- url: /_ah/spi/.*
  script: endpoints.app

# Page handlers
- url: /.*
  script: home.app

这不起作用:

handlers:
# Page handlers
- url: /.*
  script: home.app

# Endpoint handler
- url: /_ah/spi/.*
  script: endpoints.app
于 2013-03-17T19:46:14.847 回答
-1

问题是您的 python 文件找不到以下内容的导入:

from protorpc import remote

因此,使用终端,跳过 GUI,导航到 appengine sdk 目录并将您的项目放在那里。对于 mac,它是:

/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/
于 2015-02-26T23:46:41.233 回答