- Java
- Spring Boot
- Spring Data JPA
- MySQL
- Flyway
- JUnit 5
- Mockito
- Swagger
- Docker
1 - Instale o Docker em sua máquina.
docker compose up
- A primeira vez que você usar o comando
docker compose up -d
, todas as imagens necessárias para a aplicação serão baixadas para rodar em sua máquina. Em poucos minutos, a aplicação estará em funcionamento. - Você pode verificar se ambos os containers já estão em execução usando o comando
docker ps
.
- A aplicação estará disponível no endereço: http://localhost:8080
- A documentação estará disponível no endereço: http://localhost:8080/swagger-ui/index.html
- Todas as requisições estão preparadas no arquivo .JSON localizado no diretório raiz do projeto.
Método | Url | Descrição | Corpo da requisição |
---|---|---|---|
POST | /v1/authors | Crie um novo autor. | JSON |
GET | /v1/authors/{id} | Busque um autor por id. | |
GET | /v1/authors | Busque todos autores. | |
GET | /v1/authors/search&name={name} | Busque autores pelo nome. | |
PUT | /v1/authors/{id} | Atualize um autor por id. | JSON |
DELETE | /v1/authors/{id} | Apague um autor por id. |
Método | Url | Description | Corpo da requisição |
---|---|---|---|
POST | /v1/books | Crie um novo livro. | JSON |
GET | /v1/books/{id} | Busque um livro por id. | |
GET | /v1/books | Busque todos os livros. | |
GET | /v1/books/search&name={name} | Busque livros pelo nome. | |
GET | /v1/books/genre/{genre} | Filtre livros pelo genêro. | |
PUT | /v1/books/{id} | Atualize um livro por id. | JSON |
DELETE | /v1/books/{id} | Apague um livro por id. |
{
"name": "Some name",
"pages": 100,
"genre": "COMEDY",
"synopsis": "Some synopsis",
"publicationDate": "2024-01-01",
"isbn": "123-456",
"authorId": 1
}
{
"name": "Some name",
"pages": 100,
"genre": "FANTASY",
"synopsis": "Some synopsis",
"publicationDate": "2024-01-01",
"isbn": "123-456",
"authorId": 1
}
{
"name": "Some name",
"pages": 100,
"genre": "COMEDY",
"synopsis": "Some synopsis",
"publicationDate": "2024-01-01",
"isbn": "123-456",
"authorId": 1
}
{
"name": "Some name",
"pages": 100,
"genre": "FANTASY",
"synopsis": "Some synopsis",
"publicationDate": "2024-01-01",
"isbn": "123-456",
"authorId": 1
}