Skip to content

Ygorfnascimento/Spring_Boot

Repository files navigation

📚 Mercado Livro API

API REST para gerenciamento de clientes e livros, desenvolvida em Kotlin com o ecossistema Spring Boot.


🎯 Objetivo

O propósito deste projeto é estruturar a arquitetura de back-end necessária para simular as operações de um e-commerce de livros, gerenciando o fluxo de cadastro, atualização e exclusão de clientes (Customers) e o vínculo/status dos livros (Books) associados a eles através de regras de negócio bem definidas.


📂 Estrutura e Arquitetura do Sistema

O projeto combina a organização estrutural em camadas com o versionamento evolutivo do banco de dados:

⚙️ Camadas lógicas

  • Controllers: Exposição dos endpoints da API (BookController, CustomerController) para recepção de requisições.
  • Services: Concentração e isolamento das regras de negócio do sistema.
  • Repositories: Comunicação direta com a base de dados utilizando abstrações do Spring Data JPA.

💾 Banco de Dados e Migrations

  • Database (Migrations): Controle e versionamento evolutivo das tabelas estruturadas via Flyway (V1__create_table_customer, V2__create_table_book, V3__add_status_at_customer).

🛠️ Tecnologias

  • Kotlin
  • Spring Boot (Web / Data JPA)
  • MySQL
  • Flyway Migrations
  • Gradle (Kotlin DSL)
  • Postman / Insomnia (Validação de Rotas)

🚀 Principais Endpoints (Rotas da API)

Clientes (/customers)

  • GET /customers — Lista todos os clientes (suporta busca via query param ?name=...).
  • POST /customers — Cadastra um novo cliente.
  • GET /customers/{id} — Busca os detalhes de um cliente específico.
  • PUT /customers/{id} — Atualiza os dados cadastrais de um cliente.
  • DELETE /customers/{id} — Inativa um cliente do sistema.

Livros (/books)

  • GET /books — Lista todos os livros cadastrados.
  • POST /books — Cadastra um novo livro e o associa a um cliente existente.
  • GET /books/{id} — Busca os detalhes de um livro específico.
  • PUT /books/{id} — Atualiza informações cadastrais de um livro.
  • DELETE /books/{id} — Altera o status do livro para cancelado/deletado.

⚙️ Como Rodar e Testar o Projeto Localmente

  1. Certifique-se de ter o MySQL rodando localmente e crie um banco de dados chamado mercadolivro.
  2. Configure suas credenciais do banco no arquivo src/main/resources/application.yml.
  3. Clone o repositório e execute a aplicação via terminal ou IntelliJ:
./gradlew bootRun
  1. Para testar as rotas: Você pode utilizar ferramentas como Postman, Insomnia ou a extensão HTTP Client do próprio IntelliJ para enviar as requisições para http://localhost:8080 utilizando as rotas listadas acima.

About

API REST para gerenciamento de e-commerce de livros desenvolvida em Kotlin e Spring Boot com persistência em MySQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages