Skip to content

IamThiago-IT/books-api-go

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go Logo

📚 Books API

API RESTful para gerenciamento de livros construída em Go

SobreTecnologiasFuncionalidadesInstalaçãoEndpointsExemplosEstruturaContribuiçãoLicença

Go Version License Status


📖 Sobre

Uma API REST completa e elegante para gerenciamento de uma biblioteca pessoal de livros. Este projeto demonstra conceitos fundamentais de desenvolvimento backend em Go, incluindo roteamento com Gorilla Mux, manipulação de JSON e operações CRUD.

🎯 Motivação

Criar uma solução prática para organizar e gerenciar uma coleção de livros, permitindo cadastro, consulta, atualização e remoção de registros de forma simples e eficiente.


🚀 Tecnologias

Tecnologia Descrição
Go Linguagem de programação principal
Gorilla Mux Router HTTP de alto desempenho
JSON Formato de serialização de dados

✨ Funcionalidades

  • Criar - Cadastrar novos livros na biblioteca
  • Listar - Visualizar um livro específico ou todos os livros
  • Atualizar - Editar informações de livros existentes
  • Deletar - Remover livros da biblioteca

📋 Modelo de Dados

{
  "id": 1,
  "titulo": "Nome do Livro",
  "categoria": "Categoria",
  "autor": "Nome do Autor",
  "sinopse": "Descrição do livro"
}

🔧 Instalação

Pré-requisitos

  • Go 1.21 ou superior
  • Git

Passo a passo

# Clone o repositório
git clone https://github.com/IamThiago-IT/Go.git

# Acesse o diretório do projeto
cd Go

# Instale as dependências
go mod tidy

# Execute a aplicação
go run main.go

🎉 A API estará disponível em http://localhost:8000


📡 Endpoints

Método Endpoint Descrição
POST /livros Cadastra um novo livro
GET /livros Lista todos os livros
GET /livros/{id} Retorna um livro específico
PUT /livros/{id} Atualiza um livro existente
DELETE /livros/{id} Remove um livro

💡 Exemplos

📗 Cadastrar um livro

curl -X POST http://localhost:8000/livros \
  -H "Content-Type: application/json" \
  -d '{
    "titulo": "O Senhor dos Anéis",
    "categoria": "Fantasia",
    "autor": "J.R.R. Tolkien",
    "sinopse": "Uma aventura épica na Terra Média."
  }'

Resposta:

{
  "id": 1,
  "titulo": "O Senhor dos Anéis",
  "categoria": "Fantasia",
  "autor": "J.R.R. Tolkien",
  "sinopse": "Uma aventura épica na Terra Média."
}

📘 Listar todos os livros

curl -X GET http://localhost:8000/livros

📙 Buscar um livro específico

curl -X GET http://localhost:8000/livros/1

📕 Atualizar um livro

curl -X PUT http://localhost:8000/livros/1 \
  -H "Content-Type: application/json" \
  -d '{
    "titulo": "O Hobbit",
    "categoria": "Fantasia",
    "autor": "J.R.R. Tolkien",
    "sinopse": "A aventura de Bilbo Bolseiro."
  }'

🗑️ Deletar um livro

curl -X DELETE http://localhost:8000/livros/1

📁 Estrutura

📦 Go
 ┣ 📜 main.go      # Código principal da aplicação
 ┣ 📜 go.mod       # Dependências do projeto
 ┣ 📜 README.md    # Documentação
 ┗ 📜 LICENSE      # Licença MIT

🤝 Contribuição

Contribuições são sempre bem-vindas! Para contribuir:

  1. Faça um Fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/MinhaFeature)
  3. Commit suas mudanças (git commit -m 'feat: Adiciona MinhaFeature')
  4. Faça Push para a branch (git push origin feature/MinhaFeature)
  5. Abra um Pull Request

📝 Licença

Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💙 por Thiago

About

API Rest de Gerenciamento de Livros em Go

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors