No contexto dos meios de pagamento, o desafio é construir uma API Restful para gestão de contas.
Mais detalhes no repositório cdt-baas/desafio-dev-api-rest.
A solução é baseada no framework Express para a interface web, e no Mapeamento Objeto Relacional (ORM) Knex.js para construção do banco de dados e de suas consultas.
Para organização dos arquivos/scripts, é utilizado o Consign.
A aplicação está escrita em Typescript.
A aplicação utiliza como solução de banco de dados o PostgreSQL, onde a conexão é configurada através de uma variável de ambiente, cujo valor padrão é:
PG_CONNECTION_STRING=postgres://postgres:123456@localhost:5432/banco
As variáveis de ambiente podem ser definidas em um arquivo .env no diretório raiz.
Para executar a aplicação com hot reload, utilize o seguinte comando:
npm run dev
Para executar a aplicação com código Javascript, é necessário realizar o build primeiro, com o seguinte comando:
npm run build
A saída, em JS, estará no diretório ./dist
. Para rodar esse código gerado, utilize o seguinte comando:
npm start
Por padrão, a aplicação escuta novas requisições na porta 3000, que também pode ser definido através de variável de ambiente.
Para criar um arquivo de migração, utilize o seguinte comando:
npx knex migrate:make MIGRATION_NAME -x ts --knexfile ./src/knexfile.ts
Onde MIGRATION_NAME
é o nome da migração
No dois caos, development ou production, a aplicação irá realizar as migrações no banco de dados para criá-lo, conforme scripts descritos no diretório ./src/migrations.
Para criar um arquivo de migração, utilize o seguinte comando:
npx knex seed:make SEED_NAME
Onde SEED_NAME
é o nome do arquivo seed
docker run --name some-postgres -e POSTGRES_PASSWORD=123456 -e POSTGRES_USER=postgres -e POSTGRES_DB=banco -p 5432:5432 -d postgres:13
Onde some-postgres
é o nome do container.