Criando uma Super API REST com Django Rest Framework e Cloudinary 4/5

Thallison Rhanniel
3 min readNov 22, 2017

--

Click aqui para ver o parte 3.

Alcançamos o nível God, a partir daqui você terá total controle sobre sua aplicação, e terá poderes de limitar quem acessará sua Api. Como dizia o tio Ben.

Sendo assim, apenas quem tiver um Token poderá acessar os dados, altere o arquivo settings.py informando ao Django que restrinja o acesso de quem não possui uma Key(chave de acesso).

O Django criará uma tabela com todos os seus tokens, cada Token é vinculado a um usuário do sistema, como será criado uma nova tabela é necessário rodar o comando migrate.

python manage.py migrate

Ao tentar acessar a aplicação sem o token, os dados serão omitidos e uma mensagem é retornada.

Como eu disse acima, este token está vinculado a um usuário, crie um usuário administrador(pode ser usuário comum também) com o comando abaixo.

python manage.py createsuperuser

Após finalizar, faça o login pelo navegador 127.0.0.1:8000/admin/. Agora o usuário já está definido, criaremos uma view responsável por criar um token relativo ao usuário logado no momento.

irá retornar 401, se não houver nenhum usuário logado, e também uma mensagem, eu resolvi personalizar o retorno, caso não lhe interesse desta maneira, use a variável “message’’ que retorna o erro em questão em Inglês.

Adicione uma rota em api/urls.py relativa a esta nova view.

Chame essa view em seu navegador.

Com o token em mãos, basta adiciona-lo no Header da sua requisição.

Também é possível automatizar essa parte, sempre que criar um usuário novo, automaticamente criar um um token para ele, e é bem simples, basta adicionar algumas linhas em seu models.py.

Criando um novo usuário será atribuído um token automaticamente.

Agora criaremos novos testes automatizados, em api/tests crie mais um arquivo chamado test_token_view.py.

Neste teste eu adicionei a criação de um usuário em setUp, para que o token possa ser criado e eu ter acesso a pagina.

Será necessário atualizar os testes anteriores.

test_comment_view.py

test_comments_list_view.py

Basicamente foram feitas duas alterações.

setUp: Adição do Header passando o token

force_authenticate: Adição deste método em alguns testes para forçar o login em alguma página e liberando o acesso aos dados.

Confira a ultima parte aqui.

Finalizamos mais uma parte, obrigado por ler até aqui, lhe aguardo nas futuras postagens. Antes de sair, deixei sua opinião e compartilhe com seus amigos Adios.

Contato:

Linkedin

Email: thallisonrlima@gmail.com

--

--