https://github.com/rai200890/graphene-flask-example
https://github.com/rai200890/graphene-flask-example
flask flask-graphql graphene graphene-sqlalchemy graphql
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/rai200890/graphene-flask-example
- Owner: rai200890
- Created: 2017-10-10T15:06:43.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-10T15:26:38.000Z (over 7 years ago)
- Last Synced: 2024-10-18T23:20:07.811Z (8 months ago)
- Topics: flask, flask-graphql, graphene, graphene-sqlalchemy, graphql
- Language: Python
- Size: 32.2 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# graphene-flask-example
Exemplo de uma API [GraphQL](http://graphql.org/) usando [Graphene](http://docs.graphene-python.org/en/latest/quickstart/), [Flask GraphQL](https://github.com/graphql-python/flask-graphql) e [Graphene-SQLAlchemy](http://docs.graphene-python.org/projects/sqlalchemy/en/latest/).
## Instalação
### Virtualenv
[Instalação](https://virtualenv.pypa.io/en/stable/installation/)
```
virtualenv --python python3 venv
source venv/bin/activate
pip install -U pip
pip install -r requirements-dev.txt
```### Tox
[Instalação](https://tox.readthedocs.io/en/latest/)
```
tox
```### Docker-Compose
[Instalação](https://docs.docker.com/compose/install/)
```
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
```## Configuração do ambiente local
Crie um arquivo local .env baseado no arquivo .env.sample.
## Execução do servidor local
```
python run.py #executa o servidor local na porta 3000
```## Versionamento do banco de dados
A aplicação usa o [Flask-Migrate](https://github.com/miguelgrinberg/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
```### Rotas
```
GET /api/healthcheck
GET /api/graphql
```
## Execução dos testes unitários
```
pytest
```## Linter
```
flake8 tests user_api
```