/franq-api

Provide hg finance data and user authentication

Primary LanguageTypeScript

franq-api

Api que prove dados financeiros, como preços de moedas e ações, mediante a autenticação.

Rodando a aplicação

Para executar a aplicação em modo de desenvolvimento siga os passos abaixo.

Variáveis ambiente

Crie um arquivo .env na raíz do projeto chamado '.env'. Para adicionar as variáveis ambiente necessárias, basta copiar o conteúdo do .env.example e atribuir valores a cada uma.

  • NODE_ENV: Define o ambiente em que o programa está rodando
  • APP_SECRET: Define o segredo a ser usado para geração e validação dos tokens jwt
  • DATABASE_NAME: Define o nome do banco de dados a ser utilizado
  • LOGGER_ALL_FILE: Especifica o caminho onde os arquivos de log de qualquer tipo serão armazenados (e.g. logs/all.log)
  • LOGGER_ERRORS_FILE: Especifica o caminho onde os arquivos de log de erro serão armazenados
  • HGFINANCE_BASE_URL: Especifica o endpoint para obtenção de dados https://api.hgbrasil.com/finance
  • HGFINANCE_KEY: Especifica uma chave criada no hgbrasil (necessária para as requests)
  • AWESOME_API_BASE_URL: Endpoint para obtenção de dados históricos de moedas da awesome api

Como rodar a api [desenvolvimento]

Primeiramente instale o gerenciador de pacotes yarn (https://classic.yarnpkg.com/en/docs/install/), o Node.js (https://nodejs.org/en/download/) e o git (https://git-scm.com/downloads). Depois em um terminal rode os seguintes comandos para executar o programa:

# Baixa o repositório
git clone https://github.com/zenatureza/franq-api

# Acessa o diretório
cd franq-api

# Instala os pacotes necessários
yarn install

# Gera o arquivo necessário para as migrations
cp ormconfig.example.dev.json ormconfig.json

# Inicializa o banco de dados
yarn typeorm migration:run

# Roda o servidor de desenvolvimento
yarn dev:server

Testes

Para rodar os testes basta executar o seguinte comando na raiz do projeto:

yarn test

Endpoints disponíveis

request body:

{
  "email": "myemail@provider.com",
  "password": "mypassword",
  "name": "username"
}

request body:

{
  "email": "myemail@provider.com",
  "password": "mypassword"
}

necessário incluir o header: Authorization: Bearer ${token}

necessário incluir o header: Authorization: Bearer ${token}

necessário incluir o header: Authorization: Bearer ${token}