Skip to content

sShayron/vaniApi

Repository files navigation

Projeto VaniApi

REST API usando Node, Express e GraphQL

Recursos

✓ Multi-plataforma, desenvolva no macOS, Windows ou Linux usando Docker
✓ Única dependência do projeto Docker v1.12.5 ou posterior
✓ Autenticação e autorização via Passport.js
✓ Gerênciamento em cache da sessão com [Redis] (https://redis.io/)
✓ Banco de dados utilizado PostgreSQL: Migrations (migrations)
GraphQL Faz a função da ORM, sendo uma linguagem de query baseada em promise
✓ O mesmo processo utilizado pra fazer o build pra local é o usado pra fazer build em produção

Estrutura de Pastas

.
├── /build/                     # Arquivos compilados via Babel
├── /migrations/                # Entidades do banco de dados
├── /scripts/                   # Scripts para build automático
├── /src/                       # Código fonte da aplicação
│   ├── /db/                    # Conexão e controladores do banco de dados
│   ├── /routes/                # Definição de rotas da aplicação
│   ├── /types/                 # Modelos das entidades do banco de dados
│   │   ├── /User.js            # Entidade User (id, email, etc.)
│   │   └── /...                # etc.
│   ├── /app.js                 # Aplicação Express.js
│   ├── /passport.js            # Passport.js como forma de autenticação
│   ├── /schema.js              # Entidade GraphQL
│   └── /server.js              # Node.js server (entry point)
├── /test/                      # Teste automatizados
├── .env                        # Configurações de variável de ambiente para desenvolvimento
├── .env.example                # Referência de configurações de variaveis de ambiente
├── docker-compose.yml          # Docker: serviços, networks e volumes
├── Dockerfile                  # Comandos para fazer o build da imagem de docker em produção
├── Dockerfile.dev              # Comandos para fazer o build da imagem de docker em desenvolvimento
├── package.json                # Lista de dependência do projeto
└── yarn.lock                   # Mantém versões fixas para todas depêndencias

Iniciando aplicação

Tenha instalado:

$ docker-compose up               # Inicia os containers Docker com aplicação rodando 

Sua API estará disponível em https://localhost:5000/

  • Uma vez que o container do docker chamado api for iniciado, a Docker engine executará: node scripts/run.js comando que instalará as depêndencias do projeto, os migrates dos esquemas do banco de dados para ultima versão, compilar os arquivos do código fonte(src).
  • Para abrir uma sessão por terminal dentro do container api execute:
$ docker-compose exec api /bin/sh

Nesta sessão poderá rodar scripts de teste yarn test, migrate yarn run db:migrate e os outros dentro de scripts e package.json.

Testando

$ yarn run lint                   # Testa padrões do código
$ yarn run check                  # Testa se o código fonte tem erros de tipagem
$ yarn run test                   # Execute testes unitário uma única vez
$ yarn run test:watch             # Executa testes unitários e observer

Deploy

Edite, se necessário, o arquivo scripts/publish.js no macOS/Linux ou converta-o para publish.cmd no Windows. Então a única coisa que você precisa pra fazer o deploy para um servidor é um único comando:

$ /bin/sh scripts/publish.sh      # ou, `scripts/publish.cmd` no Windows

About

A REST API with Node, Express and GraphQL

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published