Bem-vindo à documentação da API Book Social. Esta API permite gerenciar feedbacks, livros e autenticação de usuários. A documentação segue o padrão OpenAPI e está disponível no Swagger UI.
A documentação completa da API está disponível através do Swagger UI. Para acessá-la, utilize o seguinte endereço:
http://localhost:8088/api/v1/swagger-ui.html
Feedback
Book
Authentication
POST
/feedback:
Cria um novo feedback.GET
/feedback/book/{book-id}:
Obtém todos os feedbacks de um livro específico.
POST
/books:
Cria um novo livro.GET
/books:
Obtém todos os livros.GET
/books/owner:
Obtém todos os livros do proprietário.GET
/books/borrowed:
Obtém todos os livros emprestados.GET
/books/returned:
Obtém todos os livros devolvidos.PATCH
/books/shareable/{book-id}:
Atualiza o status de compartilhamento de um livro.PATCH
/books/archived/{book-id}:
Atualiza o status de arquivamento de um livro.POST
/books/borrow/{book-id}:
Solicita o empréstimo de um livro.PATCH
/books/borrow/return/{book-id}:
Solicita a devolução de um livro emprestado.PATCH
/books/borrow/return/approve/{book-id}:
Aprova a devolução de um livro emprestado.POST
/books/cover/{book-id}:
Faz upload da capa de um livro.
POST
/auth/register:
Registra um novo usuário.POST
/auth/authenticate:
Autentica um usuário.GET
/auth/activate-account:
Ativa uma conta de usuário.
A API utiliza JWT (JSON Web Tokens) para autenticação. A configuração de segurança é definida no OpenApiConfig da seguinte maneira:
@SecurityScheme(
name = "bearerAuth",
description = "JWT auth description",
scheme = "bearer",
type = SecuritySchemeType.HTTP,
bearerFormat = "JWT",
in = SecuritySchemeIn.HEADER
)
Ao realizar requisições para endpoints protegidos, inclua o token JWT no cabeçalho da seguinte maneira:
Authorization: Bearer <seu-token-jwt>
Java 17:
Linguagem java versão 17 LTS;Spring Boot:
Framework principal para desenvolvimento da API;Spring Security:
Utilizado para autenticação e autorização;Spring Data JPA:
Utilizado para persistência de dados;PostgreSQL:
Banco de dados utilizado para persistência de dados;JWT (io.jsonwebtoken:jjwt-root:0.12.5):
Utilizado para geração e validação de tokens JWT;MailDev:
Utilizado para gerenciamento de emails de token;Swagger:
Utilizado para documentação da API;Docker:
Utilizando Docker para gerenciar o banco de dados PostgreSQL e o MailDev, a partir de um servidor dedicado Rocky Linux;Insomnia:
Utilizado para testar as requisições da API;
Este projeto está licenciado sob a MIT LICENSE.