| Plugin | README |
|---|---|
| Nodejs | https://nodejs.org/en/ |
| Git | https://git-scm.com/downloads |
$ git clone https://github.com/fredericomartini/boilerplate-typescript.git
$ cd boilerplate-typescriptInstale as dependencias com npm
$ npm iGere seu .env a partir do .env.example
$ cp .env.example .envpara habilitar o fluent, apm e sentry, é necessário alterar as suas variáveis
| Nome | URL |
|---|---|
| Aplicação | http://0.0.0.0:3000/v1 |
| Documentação | http://0.0.0.0:3000/docs |
| Status | http://0.0.0.0:3000/status |
start: Executa a aplicação com pm2stop: Para o processo do pm2dev: Executa a aplicação em modo de desenvolvimento (nodemon)debug: Executa a aplicação em modo debug (nodemon)lint: Executa o lint em todos os arquivos .ts exceto os de testenpm run test: Executa todos os testes funcionais e unitáriosnpm run test:unity: Executa todos os testes unitáriosnpm run test:functional: Executa todos os testes funcionaisnpm run test:clear: Limpa o cachenpm run test:watch: Executa todos os testes com watchernpm run test:coverage: Executa testes para a geração de cobertura de código, disponível emcoverage/index.htmlbuild": Executa o build da aplicaçãogenerate-docs": Gera a documentação do Redoc, agrupando todos os arquivos em um
O projeto possui um arquivo de configuração para executar o debugger pelo VSCode.
É aconselhado utilizar uma das configurações do debugger ao criar os testes, executando a configuração Jest Current File Watch após abrir o arquivo que deseja observar enquanto cria o teste.
- Como adicionar documentação de rotas criadas
Exemplo de como adicionar rota para usuários:
public/redoc/index.yml
# Antes
...
#ROTAS
- name: status
description: Rota disponível para verificação do status da aplicação.
x-tagGroups:
...
tags:
- status
...# Depois
...
#ROTAS
- name: status
description: Rota disponível para verificação do status da aplicação.
- name: users
description: Rotas para gereniamento de usuários.
x-tagGroups:
...
tags:
- status
- users
...public/redoc/paths/index.yml
# Antes
####################### STATUS #######################
"/status":
$ref: "./status/index.yml"
####################### /STATUS ######################## Depois
####################### STATUS #######################
"/status":
$ref: "./status/index.yml"
####################### /STATUS #######################
####################### USERS #######################
"/users":
$ref: "./users/index.yml"
####################### /USERS #######################Criar uma pasta para users se guiando pela de status
Após ter sido adicionado os grupos e as rotas para os resources gerados, deve ser criado um arquivo único para toda a documentação através do comando:
npm run generate-docs| Plugin | README |
|---|---|
| Docker | https://docs.docker.com/install |
| Docker Compose | https://docs.docker.com/compose/install |
Para iniciar os containers mysql e redis, (na raiz do projeto) utilize o comando:
$ docker-compose up -dVerifique se os containers estão disponiveis:
$ docker-compose logs mysql
$ docker-compose logs redis| Nome | URL | Dados |
|---|---|---|
| MySQL | http://0.0.0.0:3306 | user:root senha:root |
| Redis | http://0.0.0.0:6379 | n/d |
O repositório já contém a API de permissionamento para verificar se uma conta(através de um token) possui ou não permissão para uma determinada ação.
É necessário passar um token(xref_audience_accounts_services.ds_api_token) que está vinculado a uma conta, audiencia e serviço.
O token deve ser passado no header das requisições através da key x-api-key.
Os controllers devem utilizar o middleware isAuthenticated no qual irá setar para o objeto req,
qual a account encontrada para o token, caso não seja encontrado será gerado um erro 401.
Os métodos dos controllers devem utilizar o middleware hasPermission('MINHA_PERMISSAO') passando por
parametro qual a permissão desejada, caso não tenha permissão será gerado um erro 403.