我开始在我的GAE项目中使用 Cloud endpoints ,但是在服务器上没有更新api时遇到了问题 .
- localhost:8888 / _ah / api / explorer没问题 .
但是当我部署时,没有任何改变 .
- myapp.appspot.com:8888/_ah/api/explorer很糟糕
进一步调查显示url endpoints 更新示例:https://myapp.appspot.com/_ah/api/myapp/v1/foo/list
但加载的客户端API仍然不正确 . 例如:gapi.client.load('myapp','v1',callback,url); gapi.client.myapp.foo.list();
如果我将调用从foo / list更改为foo / list2,其余的url会更新,api包不会 .
6 回答
当我使用此URL调用API时,我遇到了同样的错误 Not Found (404错误代码)
https: // MY_APP_ID.appspot.com / _ah / api / MY_SERVICE / v1 / user
我尝试了一切,最后通过从 WEB-INF 删除 discovery 文件并仅保留 MY_SERVICE-v1.api 然后重新部署API来修复它 . 它现在工作正常 .
在部署新版本后,我也得到陈旧的API发现文档,GAE花了几分钟才开始为我提供新版本 .
我有同样的问题,我检查了管理日志,其他日志等...但仍然我的API没有更新到最新版本 .
所以我决定检查我编写的最后一个方法的API代码(我在Java 7中编写) . 我发现GAE不喜欢这样的陈述:
我切换到:
它就像一个魅力 . 因此,从它的外观来看,GAE扫描新的API方法并且不接受一些快捷方式 .
我将尝试涵盖人们可能遇到的两种情况:
客户端:
Google APIs Explorer网络应用程序会积极缓存,因此您需要在更新API服务器端时清除缓存或强制刷新,以查看客户端中的更改 .
服务器端(在已部署的 生产环境 应用引擎应用中):
如果您遇到部署问题,调试时有两个地方可以查看:
不久之后你应该看到:
如果此消息指示API配置更新失败,则应再次部署 . 如果所述错误持续存在,您应该通知我们一个错误 . 如果您没有看到有关API配置的任何消息,则应检查路径配置中是否明确命名了路径
/_ah/spi/.*
(对于Python为app.yaml
,对于Java为web.xml
) .部署后检查应用程序日志(https://appengine.google.com/logs?&app_id=s~YOUR-APP-ID) . 部署完成后,Google的API基础架构会在您的应用程序中向
/_ah/spi/BackendService.getApiConfigs
发出请求,以便您的API配置(如JSON)可以在Google _2527333的API基础架构中注册,无需注册 .如果您一直收到
302
请求重定向/_ah/spi/BackendService.getApiConfigs
,那是因为您(或您生成的API配置)指定了"bns adapter",它使用http:
作为API根目录中的协议,但是web.xml
(Java)或app.yaml
(Python) )要求通过/_ah/spi
的路径是安全的 . 这将使用http:
作为协议的请求被重定向(使用302
)到具有https:
作为协议的同一页面 . 在进入实验之前,这是在Trusted Tester论坛上的discussed .这就是发生在我身上的事 .
我在localhost上测试了我的 endpoints ,它工作正常 .
我在appspot上部署了我的 endpoints ,当我向它发出请求时,我在浏览器中收到了“Not found”消息 .
所以我查看了日志,当我向 endpoints 发出请求时,我在favicon文件上看到了404 http错误代码 . 实际上,我忘记将该文件放入我的部署中 .
所以我用favicon文件重新部署了我的战争,404 http代码消失了, endpoints 也在appspot上工作正常!
我意识到这可能听起来很愚蠢,但这正是我所经历的 . (我为我可怜的英语道歉)
我注意到,如果你第一次上传你的应用程序,而你的web.xml中没有以下内容:
然后你的bns适配器将被设置为http前进 . 当我之后添加上面的内容时,我在/_ah/spi/BackendService.getApiConfigs上获得了302个http代码,并且 endpoints 永远不会更新 .
所以现在我已经恢复在/ _ah / spi上不使用https,我的 endpoints 正在更新 . 我想那些看到他们的 endpoints 没有更新的人会回到他们对/ _ah / spi /上的ssl的第一个配置 .
偏航 .