Olá Eduardo, tudo bem com você?
Peço desculpas pela demora em obter um retorno.
Para limitarmos o acesso a API, definimos a propriedade public
como False
, dessa forma apenas os endpoints da api a qual o usuário logado tem acesso serão exibidos, não sendo exibidos para usuários que não estão logados no swagger. Para que essa opção seja implementada, será necessário também realizar a implementação da rota de login e logout na API.
Assim, no arquivo, url.py na variável schema_view
, defina o atributo public=False
, deixe-a como apresento abaixo:
schema_view = get_schema_view(
openapi.Info(
title="AluraFlix",
default_version='v1',
description="Provoder local de séries e filmes desenvolvida pela Alura no curso de Django Rest",
terms_of_service="#",
contact=openapi.Contact(email="c3po@c3po.com.br"),
license=openapi.License(name="BSD License"),
),
public=False,
permission_classes=[permissions.AllowAny],
)
Agora, na variável urlpatterns
presente no arquivo url.py iremos definir a rota em que o usuário irá efetuar o login e o logout. Adicione o seguinte caminho:
path('accounts/', include('rest_framework.urls')),
Após realizar as mudanças listadas, salve os arquivos modificados, inicie API e acesse a url http://127.0.0.1:8000/swagger/. Na página que será aberta, localize o botão na cor verde que está escrito Django Login que está à direita da tela. Clique nele, você será direcionado para a rota de login, entre com as credenciais de usuário para ter acesso aos endpoints da API.
No GIF abaixo é apresentado o acesso ao swagger da API
Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Espero ter lhe ajudado. Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!