Skip to content

blmarquess/go-books-api

Repository files navigation

go-books-api

Problema a ser resolvido com este projeto

Esperamos que você desenvolva uma API Rest que contemple os livros de um usuário.


Requisitos:

  • Como usuário eu gostaria de cadastrar um livro.
  • Como usuário eu gostaria de atualizar um livro.
  • Como usuário eu gostaria de listar um livro.
  • Como usuário eu gostaria de listar todos os livros.
  • Como usuário eu gostaria de deletar um livro.

Os livros devem ter:

- Título
- Categoria.
- Autor.
- Sinopse.

O que foi utilizado no projeto

  • Linguagem Go
  • GORM: Para evitar queries manuais no código e fazer a sanitização das mesmas
  • Gin Web Framework: Por conta do ganho de performance tanto no momento de escrever o código quanto no resultado pos build
  • PostgresSQL: Por ser um banco de dados Open Source e flexível para usar num MVP e possibilitar um fácil escalonamento posterior

Para testar a aplicação

Pre-requisitos: Docker e uma ferramenta de requisições http exemplo curl, httpie, postman ou insomnia

clone o projeto para sua maquina:

git clone https://github.com/blmarquess/go-books-api.git

Entre na pasta do projeto e executo o docker compose:

cd go-books-api

docker compose up --build

obs: quem utilizar docker compose v1 utilizar o comando: docker-compose up --build

Outra opção é usar os comando:

  • Iniciar a aplicação
make run
  • Parar a aplicação
make stop
  • Testar a aplicação
# Listar todos os livros
make test-all

# Listar apenas o livro de id 1
make test-one

O projeto esta configurado para iniciar na porta 8000 da maquina hospedeira

Exemplo no terminal com curl para ver a listagem dos livros:

curl --location --request GET 'http://localhost:8000/books' \
--data-raw ''

A documentação completa da aplicação com exemplos pronto para usar no postman estão nessa pagina: https://documenter.getpostman.com/view/20082367/VUxXJhqA

print da documentação

Releases

No releases published

Packages

No packages published