Хорошей практикой является разделение вашего API и веб-сайта, ориентированного на пользователя, поэтому я ищу несколько советов о том, как структурировать компоновку модуля / субмодуля для проекта Python, который имеет одновременную разработку API и интерфейсную разработку. *
При текущем развертывании у нас есть два разных компьютера: один - веб-служба, использующая API, а другой - веб-приложение.
Один из способов решения этой проблемы - создать минимальный базовый супер-проект, который инициализирует конфигурации, управляет выполнением тестирования, запуском приложений, демонизацией и т. Д.
Затем злоупотребление подмодулями Git , отделяющее веб-приложение от подмодуля API, который может разрабатываться одновременно.
Таким образом, может быть управление версиями для API (определенной версии фиксации), а также развертывание веб-приложений, которые не мешают друг другу, пока обеспечивается обратная совместимость.
Несколько минусов при таком подходе:
- Это связано с Git
- Для внесения изменений в API по-прежнему требуется перезапуск веб-приложения (но это имеет место для любой службы, построенной вокруг API)
- Подмодули git могут быть слишком сложными и трудными для понимания новыми людьми (не уверен насчёт этого)
Как только у нас будет достаточно пропускной способности, мы можем использовать что-то вроде zc.buildout, чтобы использовать систему сборки для развертывания.
Еще одно решение - это сразу же использовать zc.buildout, иметь один главный репозиторий и просто создавать файлы выпуска python.
Мысли