llucasbrandao / mycryptolist

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

My Crypto List API

CircleCI

My Crypto List API é uma simples API implementada com Spring Boot 2.7.0 e o banco NoSQL Redis.

Sua função é buscar informações de criptomoedas no serviço Coin Paprika.


Debaixo do capô

  • Spring Boot 2.7.0;
  • Redis;
  • OpenAPI v3 (Swagger);

Como executar

Para rodar a API, basta ter o docker-compose instalado em sua máquina. Se for o caso, vá para a pasta docker:

cd docker/ && docker-compose up -d

Remova o argumento "-d" do comando acima, se quiser ver os logs do console.


Sem docker-compose

É só configurar as variáveis de ambiente no arquivo configs.env. Após, você pode usar a imagem mais recente do repositório llucasbrandao/mycryptolistapi e executá-la com o Docker padrão.

Lembre-se de que é necessário especificar um banco de dados Redis.


Sem docker

Para a execução tradicional, é necessário configurar as várias de ambiente no arquivo configs.env, ou no application-prod.yml.

Com isso, você pode compilar a aplicação usando o Maven:

cd pasta_do_projeto/ && ./mvnw -Pprod clean install -Dmaven.test.skip=true

Depois que a compilação for concluída, inicie a API:

java -jar -Dspring.profiles.active=prod && target/mycriptolist-0.0.1-SNAPSHOT.jar

Lembre-se de que é necessário especificar um banco de dados Redis.


Endpoints

Todos os endpoints podem ser consultados através do OpenAPI v3 do projeto.
Depois que ele estiver online, vá para Swagger.


Os endpoints abertos são:
  • [POST] - /login
  • [POST - /api/users/newUser

Cadastro

Ao cadastrar um usuário, é preciso preencher apenas o name, email, username e password.

[POST - /api/users/newUser

{ 
  "name": "",
  "email": "",
  "loginDetails": {
    "username": "",
    "password": ""
  }
}

Login

O login deve ser feito enviando-se o username e password para o endpoint de login:

[POST] - /login

{
    "username": "",
    "password": ""
}

Se os dados forem válidos, um bearer token será devolvido no header da response. É com ele que você deverá se autenticar nos outros endpoints.

CI

Processo de CI integrado ao projeto, para deploy com Github, CircleCI and Kubernetes.

About

License:GNU General Public License v3.0


Languages

Language:Java 98.1%Language:Dockerfile 1.9%