@cshabb

Как организовать процесс разработки Web API?

Здравствуйте.

Планируется создать API и приложение, которое будет работать с этим API, вместе с другим разработчиком.
Моя задача - сделать API, его - работать с этим API. При этом весь процесс разработки ведётся одновременно, т.е. я делаю API, тестирую, потом хочу обновленную версию отправлять на удаленный сервер, чтобы другой разработчик мог воспользоваться обновленной версией. Планировал так:
- Делаю какую-то обнову (коммит), делаю пуш в удаленный репозиторий
- На удаленном сервере скачиваю обнову, перезапускаю сервер или скрипт
- Другой разработчик теперь может дальше работать с обновленной версией API.

Хотелось бы спросить, как правильно этот весь процесс организовать, ведь наверняка есть какие-то инструменты, которые позволяют налету синхронизировать файлы в процессе разработки с моего компьютера на удалённый.

И ещё вопрос: как правильно тестировать API?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 2
Softovick
@Softovick
программист, администратор
GIT умеет хуки, которые могут запускаться в том числе при получении коммита.
По хорошему у вашего процесса разработки сервиса должны быть три этапа - dev, stage, production.
То есть dev - это вы работаете, к примеру со своей копией кода у себя на компе. Также это когда тот разработчик у себя работает с копией кода. То есть каждый из участников каким либо образом поднимаете у себя локальную копию приложения (целиком или отдельных частей, я хз что там у вас за приложение). Особых пояснений не надо, надеюсь? Обмен данными через какой-либо репозиторий происходит, тут вы правильно мыслите. Вы исправили, отправили коммит - разработчику сообщили, тот скачал себе и от себя что-то там натворил, результат в репозиторий и т.д. по кругу.
Для этапа stage - обычно подразумевается окружение (сервер), максимально приближенное к тому, где будет работать приложение. Но все же это тестовый вариант, на нем вы вместе с разработчиком отлаживаете окончательную версию перед выкладыванием на рабочий сервер. А после того, как все работает, отправляете код на рабочий.
Способов "налету синхронизировать" множество. Почитайте про GIT HOOK, возможно это то, что вам надо. Там можно написать скрипт, который, например по коммиту с определенным тегом поднимает тестовую реализацию приложения и отсылает данные по доступу разработчикам.
Также можно использовать специальные хостинги, типа Heroku, где процесс достаточно автоматизирован и удобен.

По вопросу тестирования - обратитесь к рекомендациям и литературе по используемому вами языку программирования и технологии (ну там, движок какой используете может). Обычно есть достаточно подробные рекомендации, как тестировать, что для этого нужно, какое ПО использовать и т.д.
Ответ написан
Комментировать
@forspamonly2
это называется continuous integration.

настройте какой-нить CI сервер, на нём задачу сборки по коммиту и задачу деплоя на разработочный сервер по команде.
иногда удобно делать разные задачи для деплоя бэкэнда и фронтенда.
каждый коммит деплоить непрактично - это приводит к нарушению гранулярности коммитов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы