TODO List

Tecnologias

Práticas adotadas

  • API REST
  • Consultas com Spring Data JPA
  • Injeção de Dependências
  • Tratamento de respostas de erro
  • Geração automática do Swagger com a OpenAPI 3

Como Executar

A aplicação pode ser executada em um container Docker (requer docker e compose instalados) ou construída pelo Gradle e executada tradicionalmente.

  • Clonar repositório git

Método 1: via docker-compose

  • constrói o conteiner
$ docker-compose build
  • executa o conteiner
$ docker-compose up
  • encerra o conteiner
$ docker-compose down

Método 2: Construir o projeto via gradle

  • Limpa e cria um novo executável
$ ./gradlew clean bootjar
  • Executar a aplicação:
$ java -jar build/libs/todolist-0.0.1-SNAPSHOT.jar

A API poderá ser acessada em localhost:8080. O Swagger poderá ser visualizado em localhost:8080/swagger-ui.html

API Endpoints

Para fazer as requisições HTTP abaixo, foi utilizada a ferramenta httpie:

  • Criar Tarefa
$ http POST :8080/todos name="Todo 1" description="Desc Todo 1" priority=1

[
  {
    "description": "Desc Todo 1",
    "id": 1,
    "name": "Todo 1",
    "priority": 1,
    "finished": false
  }
]
  • Listar Tarefas
$ http GET :8080/todos

[
  {
    "description": "Desc Todo 1",
    "id": 1,
    "name": "Todo 1",
    "priority": 1,
    "finished": false
  }
]
  • Atualizar Tarefa
$ http PUT :8080/todos/1 name="Todo 1 Up" description="Desc Todo 1 Up" priority=2

[
  {
    "description": "Desc Todo 1 Up",
    "id": 1,
    "name": "Todo 1 Up",
    "priority": 2,
    "finished": false
  }
]
  • Remover Tarefa
http DELETE :8080/todos/1

[ ]