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.
- 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
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