将新的API客户端库安装到已部署的App Engine应用中

问题描述 投票:0回答:1

我正在开发一个同时具有前端(Dart / Polymer)和后端(Python的Endpoints)的App Engine应用。 在本地开发之后,我期望按照以下方式做一些事情:

将应用上传到App Engine。

通过运行为API生成新的发现文档

$> wget -O discovery.json <project>.appspot.com/_ah/api/discovery/apis/...

通过运行生成新的API客户端库

$> generate.dart files -i . -o .

将新客户端库安装在前端lib/或其他版本中。

上载应用程序。 修改集成测试以指向已部署的应用程序。 验证测试通过。

撤消对集成测试的更改。 重新安装API客户端库的local版本。 继续发展。

如您所见,这将变得乏味。 任何人都有一些技巧可以简化此过程? 我会以错误的方式处理吗? 也许我应该考虑在已部署的服务器上执行更多操作?

google-app-engine google-cloud-endpoints dart-polymer devops
1个回答
0
投票

我做了更多的工作,并提出了以下一般的操作序列,这些步骤需要更少的步骤(仅下载发现文档一次且仅部署一次):

  • 更改API(在localhost上运行)
  • endpointscfg.py--hostname参数一起使用可为dev_appserver('localhost:8080')生成发现文档
  • 使用discoveryapis_generator生成客户端库
  • 重命名客户端库( myapi_remote.dart
  • endpointscfg.py--hostname参数一起使用可为App Engine运行时生成发现文档(yourproject.appspot.com')
  • 使用discoveryapis_generator生成客户端库
  • 重命名客户端库( myapi_remote.dart
  • 将两个客户端库都安装在Dart项目的lib/目录中
  • 符号链接myapi.dartmyapi_remote.dart
  • 构建和部署
  • 符号链接myapi.dartmyapi_local.dart
  • 继续发展

现在,您已经有了本地和远程客户端库,并且可以根据需要更改符号链接来访问本地或部署的数据。 请注意, endpointscfg.pydev_appserver生成的发现文档指定“ https”,而不是正确的“ http”。 可以在discoveryapis_generator生成的Dart文件中修复此问题。

实际上,只需更改客户端库的MyApi构造函数中提供的rootUrl参数,就可以大大缩短整个工作流程。

当然,这些都是在Python脚本中自动完成的。 我没有在Github上寻找一个,等等,但这是非常基本的东西。 如果有人询问,我会在这里张贴。

© www.soinside.com 2019 - 2024. All rights reserved.