Exemplo de uma API GraphQL usando Graphene, Flask GraphQL e Graphene-SQLAlchemy.
virtualenv --python python3 venv
source venv/bin/activate
pip install -U pip
pip install -r requirements-dev.txt
tox
docker-compose up #cria e executa os containers web e db
docker-compose run --service-ports --name user_api_flask_web web --rm #permite que o servidor da aplicação pare em breakpoints
docker-compose exec web bash #abre o terminal do container web
docker-compose exec db mysql #abre o CLI do mysql no container db
Crie um arquivo local .env baseado no arquivo .env.sample.
python run.py #executa o servidor local na porta 3000
A aplicação usa o Flask-Migrate para fazer o versionamento do banco de dados.
Primeiramente crie o banco de dados dos ambientes de desenvolvimento e teste.
mysql -e "create database user_db;"
mysql -e "create database user_db_test;"
Em seguida:
python manage.py db migrate #cria migração caso haja mudança no schema do banco de dados
python manage.py db upgrade #executa as migrações do banco de dados
GET /api/healthcheck
GET /api/graphql
pytest
flake8 tests user_api