我正在开发一款Android应用,它在Google App Engine上使用Google Cloud Endpoints(在Python中)作为后端。 Android应用程序授权用户在Android设备上使用Google Play服务,这一切都非常有效。
但是,现在我有实际用户,我希望能够在将任何应用引擎API更改部署到生产环境之前在本地进行全部测试,而且我还没想出如何让Android应用与我交流本地开发服务器。 testing recommendations建议我只是对API资源管理器进行一些手动修改,但由于我正在使用端点Proto数据存储区来实现我的API,这使得Android开发变得简单,这也使得API Explorer基本上无用,因为我需要做的电话比我手工制作的要复杂得多。
this question的一个答案表明有一种方法可以将Android客户端指向本地服务器,但是我可以使用--host参数让dev_appserver的默认服务器侦听除localhost之外的其他内容,我似乎找不到为API服务器做同样的方法。即使我能做到这一点,它可能只是我的Android应用程序完整的端到端本地测试设置的第一步。
有人可以发布有关我如何执行此操作的更多详细信息,或者说没有,请告诉我有关在App Engine上测试使用Google Cloud Endpoints的Android应用的最佳做法吗?提前感谢您的任何答案。
答案 0 :(得分:8)
好吧,终于搞定了,感谢提示,丹!这些剩余的细节可以让我节省几个小时 - 希望这对其他人有帮助。
1)正如我前面提到的那样,dev_appserver.py需要运行--host = 0.0.0.0才能在本地网络上监听。
2)为了正确解析ID令牌以使用户身份验证工作,您需要安装PyCrypto库 - 默认情况下不会安装它,所以只在app.yaml中使用它是不够的。我找到了Windows here的二进制文件。
3)然后,在我生成的Tictactoe.java等效类中,我不得不将DEFAULT_ROOT_URL更改为http://<my-local-machine>:8080/_ah/api/
(我的本地计算机正在运行的地方),以便请求转到本地网络。或者(也许可以更少侵入性),您可以使用builder.setRootUrl从初始化构建器的任何位置使用相同的地址。这样就不会破坏生成的类。
4)我还必须做出Dan提到的改变here。
完成这四件事后,现在一切似乎都在运行,我可以在本地测试我的应用程序 - 万岁!
答案 1 :(得分:2)