0

Я работаю над приложением App Engine, которое имеет как передний конец (Dart/Polymer), так и конец (конечные точки для Python). После разработки на местном уровне, я ожидаю сделать что-то в следующих строках:Установка новой клиентской библиотеки API в развернутое приложение App Engine

Загрузите приложение в App Engine.

Создайте новый документ обнаружения для API, запустив

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

Сформировать новую клиентскую библиотеку API, запустив

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

Установите новую клиентскую библиотеку в передней части lib/ или этажерку.

Загрузить приложение. Измените интеграционные тесты, чтобы указать на развернутое приложение. Проверьте, проходят ли тесты.

Отменить изменения в интеграционных тестах. Переустановите local версию клиентской библиотеки API. Продолжайте развитие.

Как вы можете видеть, это станет утомительным. У кого-нибудь есть некоторые советы по оптимизации этого процесса? Неужели я ошибаюсь? Может быть, я должен посмотреть, как сделать больше на развернутом сервере?

ответ

0

Я работал над этим еще немного и придумал следующую общую последовательность действий, которые требуют меньше шагов (скачать открытие документ только один раз и развернуть только один раз):

  • Изменения в API (работаю на локальном хосте)
  • Использование endpointscfg.py с параметром --hostname для создания документа обнаружения для dev_appserver («локальный: 8080»)
  • сформировать библиотеку клиента с помощью discoveryapis_generator
  • Переименование консоли лор библиотека (myapi_remote.dart)
  • Использование endpointscfg.py с параметром --hostname для создания документа обнаружения для выполнения App Engine (yourproject.appspot.com ')
  • Сформировать библиотеку клиента с помощью discoveryapis_generator
  • Переименовать библиотеку клиента (myapi_remote.dart)
  • Установите клиентские библиотеки в lib/ директории проекта Дарта
  • Symlink myapi.dart в myapi_remote.dart
  • Построение и развертывание
  • Symlink myapi.dart в myapi_local.dart
  • Продолжить развитие

Теперь у вас есть как локальные и удаленные клиентские библиотеки под рукой, и может просто изменить символьную ссылку по желанию, чтобы получить доступ к местным или развернутые данные. Обратите внимание, что документ обнаружения, созданный endpointscfg.py для dev_appserver, указывает «https», а не правильный «http». Это можно зафиксировать в файле Dart, сгенерированном discoveryapis_generator.

Действительно, весь этот рабочий процесс можно значительно сократить, просто изменив параметр rootUrl, указанный в конструкторе библиотеки MyApi клиентской библиотеки.

Конечно, все это автоматизировано в сценарии Python. Я не искал его в Github и т. Д., Но это довольно простой материал. Я отправлю его здесь, если кто-то спросит.

Смежные вопросы