Estou usando o django-rest-framework . Ele fornece uma incrível API de auto-documentação navegável no estilo administrador do Django. Mas qualquer um pode visitar essas páginas e usar a interface para adicionar dados (POST). Como posso desabilitá-lo?
django
django-rest-framework
iForests
fonte
fonte
Respostas:
Você só precisa remover o renderizador de API navegável da sua lista de renderizadores suportados para a exibição.
Geralmente:
Base por visualização:
Fora :
Consulte também a resposta abaixo para obter mais detalhes sobre como restringir o renderizador de API navegável ao desenvolvimento.
fonte
it's a big aid to any developers working on the API
. Eles não deveriam ter arquivos de configurações para desenvolvimento e produção? Em desenvolvimento, ative a API navegável.Embora a resposta aceita para essa pergunta responda à pergunta como foi redigida, sinto que ela não resolve o problema real em questão.
Para ter uma resposta completa, desabilite a API HTML navegável removendo-a das classes de renderizador da seguinte maneira:
No entanto, o problema real ao qual a pergunta se refere é que as pessoas podem postar na API sem autenticação. Embora a remoção do formulário a torne menos óbvia, essa resposta não protege os pontos de extremidade da API.
No mínimo, alguém encontra essa pergunta e procura proteger a API contra envios POST não autenticados ou não autorizados; o está olhando para mudar o permissões da API
A seguir, todos os pontos de extremidade serão configurados como somente leitura, a menos que o usuário seja autenticado.
Se você deseja ocultar completamente a API, a menos que o usuário esteja logado, você também pode usar
IsAuthenticated
.FYI: Isso também removerá o formulário da API navegável em HTML, pois responde às permissões. Quando um usuário autenticado efetua login, o formulário estará disponível novamente.
Rodada de Bônus :
Ative apenas a API HTML navegável no dev:
fonte
REST_FRAMEWORK['DEFAULT_RENDERER_CLASSES'].append('rest_framework.renderers.BrowsableAPIRenderer')
Basta adicionar isso ao seu Settings.py para desativar a API navegável!
fonte