Modifique o .env antes de rodar a API os dados estaram no docker-compose.yml
git clone git@github.com:JonProg/API_Library.git
cd API_Library
docker compose up -d --build
docker compose exec web python manage.py makemigrations
docker compose exec web python manage.py migrate
#A api será executada na porta 8000 -> http://127.0.0.1:8000
-
GET /api/books/
: Lista todos os livros com opções de filtro por category, author e title. -
POST /api/books/
: Cria um novo livro (administradores). -
PUT /api/books/<id>/
: Atualiza um livro existente (administradores). -
DELETE /api/books/<id>/
: Remove um livro existente (administradores). -
PATCH /api/books/borrowed/<book_id>/
: Permite que um usuário faça o empréstimo de um livro. -
PATCH /api/books/refund/<book_id>/
: Permite que um usuário devolva um livro.
GET /api/user/
: Retorna os dados do usuário logado, incluindo livros emprestados.PATCH /api/user/
: Atualiza informações do usuário logado (nome de usuário, e-mail).DELETE /api/user/
: Deleta a conta do usuário logado.POST /api/user/register/
: Registra um novo usuário.POST /api/user/login/
: Realiza login com username e password e retorna tokens JWT nos cookies.
def set_jwt_cookie(response, token, refresh_token):
"""Define cookies for JWT tokens."""
access_expiration = timezone.now() + datetime.timedelta(minutes=25)
refresh_expiration = timezone.now() + datetime.timedelta(days=7)
response.set_cookie(
key='access',
value=token,
expires=access_expiration,
httponly=True,
secure=settings.SECURE_COOKIES,
samesite='Lax'
)
response.set_cookie(
key='refresh',
value=refresh_token,
expires=refresh_expiration,
httponly=True,
secure=settings.SECURE_COOKIES,
samesite='Lax'
)
return response