运行 开发服务器(本地主机)上 Google Cloud Endpoints 的 API Explorer 不再有效

Running the API Explorer for Google Cloud Endpoints on a development server (on localhost) no longer works

我正在使用 Google Cloud Endpoints 为 Python 中的 Android 应用编写后端。当我尝试 运行 Google 的 API 资源管理器在开发服务器(本地主机)上测试我的 API 时,它给我一个关于 SSL 的错误:

403 Forbidden
    {
     "error": {
      "errors": [
       {
        "domain": "global",
        "reason": "sslRequired",
        "message": "SSL is required to perform this operation."
       }
      ],
      "code": 403,
      "message": "SSL is required to perform this operation."
     }
    }

Google 的文档支持这一点:

  1. 端点需要 SSL。 (https://cloud.google.com/appengine/docs/python/endpoints/ )

  2. "The development web server does not support HTTPS connections" cloud.google.com/appengine/docs/python/config/appconfig#Python_app_yaml_Secure_URLs

我有两个不方便的解决方法:使用 CURL 将命令发送到开发服务器(如以下站点建议的那样)或仅测试已部署的版本。 API Explorer 非常方便,过去几年我每次使用它时它都能正常工作,最近一次是在 2014 年 8 月。

有谁知道 API Explorer 需要 SSL 是否是最近的更改?有什么方法可以在开发服务器上使用 API Explorer,就像这里所说的那样(https://cloud.google.com/appengine/docs/python/endpoints/test_deploy#running_and_testing_api_backends_locally)?

谢谢。

解决方法由 Tyler Rockwood 找到...

如果您从 @endpoints.api 注释中删除 hostname 字段,它将再次起作用:

行不通...

@endpoints.api(name="blah", version="v1", description="Blah", hostname="causesfailure.appspot.com")

会工作...

@endpoints.api(name="blah", version="v1", description="Blah")

或者(甚至 lamer)您可以在测试时将主机名设置为 localhost

@endpoints.api(name="blah", version="v1", description="Blah", hostname="localhost:8080")

不要在 @endpoints.api 注释中添加 hostname