rodi38 / biblioteca

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Local Bibliotca API

Requisitos do projeto:

Java jdk 17 ou superior
PostgreSQL 16
Apache-maven-3.9.6

É esperado que o usuário tenha a JAVA_HOME e MAVEN_HOME corretamente configurados no seu computador.
É necessário que o caminho para a pasta 'bin' do PostgreSQL esteja adicionado à variável de ambiente 'Path' do sistema.

A aplicação foi desenvolvida utilizando o IntelliJ IDEA, mas os usuários têm a liberdade de escolher a IDE que mais lhes convier.

Instalação local

Passo 1

Baixe instale o banco de dados Postgresql ou tenha uma imagem do postgresql no docker instalada.

Crie um banco de dados com o nome library ou de nome preferido(neste caso terá de mudar as configurações do application.yaml) com o seguinte comando no terminal: createdb -U usuarioDoBanco nomeDoBanco

PS: Nome de usuário e senha são escolhidos no momento da instalação, por padrão o usuário normalmente é postgres, fique atento no momento de instalação!

PS: Para rodar o comando anterior é necessário adicionar o caminho de instalação do Postgresql na variavel path do sistema!

Caso esteja fazendo via docker, utilize os seguintes comandos para baixar a imagem do Postgresql e criar um container:
docker pull postgres docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

Passo 2

Clone o repositório com o seguinte comando no terminal: git clone https://github.com/rodi38/biblioteca.git

Se preferir, você pode simplesmente baixar o repositório em formato ZIP. Basta clicar em 'Code', selecionar 'Download ZIP' e depois descompactar o arquivo baixado.

Passo 3

No arquivo application.yaml localizado em: src/main/resources/application.yaml será necessário mudar o password para a senha escolhida na criação do banco bem como o nome de usuário.

Troque também o nome do banco caso o nome do seu banco não seja library:
url: jdbc:postgresql://localhost:5432/NomeDoSeuBanco

Passo 4

Antes de rodar o projeto será necessário carregar todas dependências, no intellij basta seguir estes passos:
Project > Biblioteca > click direito > Maven > Reload project

Tendo feito todos procedimentos anteriores é hora de rodar o projeto, no IntelliJ IDEA basta apertar shift + F10

Se fez todos passos corretamente o projeto rodará sem nenhum erro, parabéns.

Rotas

Book

getAllBooks: http://localhost:8080/book

em caso de sucesso receberá um json contendo todos livros cadastrados:

{
    "success": true,
    "message": "Successfully get all books",
    "data": [
        {
            "id": 6,
            "stockQuantity": 1333,
            "title": "livro 2",
            "author": "rodrigo",
            "category": "goat",
            "isbn": "1231231",
            "publisher": "da boa",
            "publishedYear": 1998
        },
        {
            "id": 3,
            "stockQuantity": 11,
            "title": "wilson da nave",
            "author": "wilson evangelista",
            "category": "scfi",
            "isbn": "978-3-16-148410-0",
            "publisher": "Microsoft",
            "publishedYear": 2025
        }
    ]
}

getBookById: http://localhost:8080/book/6

em caso de sucesso receberá um json contendo o livro com o id mencionado:

{
    "success": true,
    "message": "Successfully get the book",
    "data": {
        "id": 6,
        "stockQuantity": 1333,
        "title": "livro 2",
        "author": "rodrigo",
        "category": "goat",
        "isbn": "1231231",
        "publisher": "da boa",
        "publishedYear": 1998
    }
}

updateBook: http://localhost:8080/book/6

em caso de sucesso receberá um json contendo as informações do livro atualizado:

{
    "success": true,
    "message": "Book has been updated",
    "data": {
        "id": 6,
        "stockQuantity": 29,
        "title": "asdsd",
        "author": "Rodrigo Doe",
        "category": "atumalaca",
        "isbn": "978-3-16-148410-0",
        "publisher": "sadasd XYZ",
        "publishedYear": 2021
    }
}

deleteBook: http://localhost:8080/book/7

em caso de sucesso receberá um json contendo as informações do livro deletado:

{
    "success": true,
    "message": "Successfully deleted the book",
    "data": {
        "id": 7,
        "stockQuantity": 11,
        "title": "wilson da nave",
        "author": "wilson evangelista",
        "category": "scfi",
        "isbn": "978-3-16-148410-0",
        "publisher": "Microsoft",
        "publishedYear": 2025
    }
}

About


Languages

Language:Java 100.0%