0% acharam este documento útil (0 voto)
7 visualizações

Django Rest Framework

Enviado por

fabiano brz
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
7 visualizações

Django Rest Framework

Enviado por

fabiano brz
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato PPTX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 30

Módulo 2 – Desenvolvimento WEB

com Django

Prof. Raí Freire


DJANGO - REST

A partir de agora, vamos tratar de uma biblioteca muito


poderosa para construções de APIs: Podemos
analisar o
link!
o Django Rest Framework, ou DRF. (Para conhecer mais, é só clicar!)

Com o DRF é possível combinar Python e Django de uma forma


flexível, e desenvolver APIs web de uma forma
bem simples e rápida.
DJANGO - REST

Algumas razões para usar o DRF:

•Ele provê uma interface navegável.


•Diversas estratégias de autenticação, incluindo pacotes para OAuth1 e OAuth2.
•Serialização de objetos de fontes ORM (bancos de dados) e não-ORM (classes
próprias).
•Documentação extensa e grande comunidade.
•Usado por grandes corporações, como: Heroku, Mozilla...

O melhor de tudo é que ele utiliza nosso querido Django como base!
Por isso é interessante que você já possua certo conhecimento em Django.
DJANGO - REST
Podemos
analisar o
link!

O que é uma API?

APIs são mecanismos que permitem que dois componentes de software se comuniquem usando um conjunto de
definições e protocolos. Por exemplo, o sistema de software do instituto meteorológico contém dados meteorológicos
diários. A aplicação para a previsão do tempo em seu telefone “fala” com esse sistema por meio de APIs e mostra
atualizações meteorológicas diárias no telefone.
DJANGO - REST

O que são APIs REST?

Já vimos isso no Django ao trabalharmos com FORMS. REST significa Transferência


Representacional de Estado. REST define um conjunto de funções como GET, PUT, DELETE e assim
por diante, que os clientes podem usar para acessar os dados do servidor. Clientes e servidores trocam
dados usando HTTP.
DJANGO - REST
Vamos conhecer mais sobre APIs na prática!

Vamos acessar a API de um jogo de cartas. É só clicar aqui.


DJANGO - REST
Aqui há algumas funções para termos uma ideia de como funciona o consumo da Api.

As urls estão na própria pagina!!!


DJANGO - REST
DJANGO - REST
DJANGO - WEB

Perguntas?
DJANGO - WEB
Agora vamos
construir a nossa.
DJANGO - REST

IMPORTANTE!!!

Para trabalharmos com o DRF, é necessário que tenhamos um projeto feito no Django.
Precisamos ter, pelo menos, aquela parte do Django ADMIN realizada.
DJANGO - REST

O processo de desenvolvimento de aplicações que utilizam o


Django Rest Framework, geralmente seguem a seguinte linha de
implementação. Notem que é bem semelhante a uma criação de
projeto do Django.

1) Modelagem;
2)Serializers;
3) ViewSets;
4) Routers
DJANGO - REST
1) Modelagem

Vamos começar
um novo
projeto, e no nosso
‘models.py’,
deixaremos assim:
DJANGO - REST
2) Serializer
Os serializers do DRF são componentes essenciais
do framework.
Eles servem para traduzir entidades complexas,
como querysets e instâncias de classes em representações
simples que podem ser usadas no tráfego da web, como
JSON e XML
DJANGO - REST
2) Serializer

O DRF disponibiliza alguns tipos de serializers que podemos utilizar, como:

• BaseSerializer: Classe base para construção de Serializers mais genéricos.

• ModelSerializer: Auxilia a criação de serializadores baseados em modelos. (vamos


utilizar este!)

• HyperlinkedModelSerializer: Similar ao ModelSerializer , contudo retorna um link


para representar o relacionamento entre entidades (ModelSerializer retorna, por
padrão, o id da entidade relacionada).
DJANGO - REST
DJANGO - REST 2) Serializer
Vamos criar o arquivo onde vão ficar os serializers da nossa API.
Criaremos o serializers.py no nosso app e deixaremos ele como na
imagem.
DJANGO - REST
3) ViewsSets
Já conhecemos as Views, trabalhamos muito com elas nos nossos projetos em
Django. Elas definem quais operações REST estarão disponíveis e como seu
sistema vai responder às chamadas à sua API.
Em outros frameworks, são chamados de Resources ou Controllers.
ViewSets herdam e adicionam lógica às Views padrão do Django.

Suas responsabilidades são:

•Receber os dados da Requisição (formato JSON ou XML)


•Validar os dados de acordo com as regras definidas na modelagem e
no Serializer
•Desserializar a Requisição e instanciar objetos
•Processar regras de negócio (aqui é onde implementamos a lógica dos nossos
sistemas)
•Formular uma resposta e responder a quem chamou sua API
DJANGO - REST
3) ViewsSets

No nosso arquivo views.py, vamos alterá-lo e deixá-lo assim.


DJANGO - REST
3) ViewsSets

Todo o código para tratamento de Requisições, serialização e desserialização de objetos e formulação de Respostas
HTTP está dentro das classes que herdamos direta e indiretamente.

Em nossa classe ConcessionariaViewSet apenas precisamos declarar os seguintes parâmetros:

• queryset: Configura o queryset base para ser utilizado pela API. Ele é utilizado na ação de listar, por exemplo.

• serializer_class: Configura qual Serializer deverá ser usado para consumir dados que chegam à API e produzir
dados que serão enviados como resposta.

• permission_classes: Lista contendo as permissões necessárias para acessar o endpoint exposto por essa ViewSet.
Nesse caso, irá permitir apenas o acesso a usuários autenticados.
DJANGO - REST

3) Routers

Os Routers nos auxiliam na geração das URLs da nossa


aplicação.
Como o REST possui padrões bem definidos de estrutura de
URLs, o DRF as gera automaticamente para nós, já no padrão
correto.
Basta utilizarmos seus Routers!
DJANGO - REST
3) Routers
Vamos criar nosso arquivo urls.py, e vamos deixá-lo assim.
DJANGO - REST
3) Routers
Vamos entender o slide anterior:

• app_name: é necessário para dar contexto às URLs geradas. Esse parâmetro especifica o namespace das
URLConfs adicionadas.

• DefaultRouter: é o Router que escolhemos para geração automática das URLs. O parâmetro trailing_slash
especifica que não é necessário o uso de barras ’ / ’ no final da URL.

• O método register recebe dois parâmetros: o primeiro é o prefixo que será usado na URL (no nosso caso:
http://localhost:8000/concessionaria) e o segundo é a View que ira responder as URLs com esse
prefixo.

• Por último, temos o velho urlpatterns do Django, que utilizamos para expor as URLs desse app.
DJANGO - REST 3) Routers
Agora precisamos adicionar as URLs específicas do nosso app ao projeto.
DJANGO - REST
3) Routers

Obs: Como boa prática, use sempre o prefixo api/v1/ para manter a
compatibilidade caso precise evoluir sua api pra V2 (api/v2/)!
DJANGO - REST
Vamos testar?

Não esqueçam de colocar a URL correta.

Aqui temos nosso endpoint.


DJANGO - REST
DJANGO - WEB
Desafio vocês adicionar tudo
que aprendemos de api
nosso projeto!
vamos CODAR!!!

Você também pode gostar