O que é o Django Rest Framework (DRF)?

Cansado de programar?

Cansado(a) de quebrar a cabeça para aprender a programar Python de verdade?

Conheça a melhor e mais completa formação de Python e Django e sinta-se um programador verdadeiramente competente. Além de Python e Django, você também vai aprender Banco de Dados, SQL, HTML, CSS, Javascript, Bootstrap e muito mais!

Quero aprender Python e Django de Verdade! Quero aprender!
Suporte

Tire suas dúvidas diretamente com o professor

Suporte

Projetos práticos voltados para o mercado de trabalho

Suporte

Formação moderna com foco na prática profissional

Salve salve Pythonista!

No desenvolvimento moderno de aplicações web, a criação de APIs RESTful é uma habilidade essencial.

O Django Rest Framework (DRF) é uma poderosa ferramenta que facilita e agiliza esse processo.

Neste artigo, vamos explorar o que é o Django Rest Framework, como ele simplifica o desenvolvimento de APIs REST, as principais funcionalidades que ele oferece e como ele pode aumentar significativamente a eficiência e a robustez do desenvolvimento de aplicações Web RESTful em Python.

Ah, e esse artigo dá o start em uma sequência incrível de artigos sobre essa importante e requisitada ferramenta!

Então fica ligado e não perca os próximos artigos! :wink:

Vá Direto ao Assunto…

Mas primeiro…

O Django REST Framework utiliza - como o próprio nome sugere - o nosso querido Django como base!

Por isso é interessante que você já possua certo conhecimento na construção de aplicações web utilizando o Django.

Ainda não é craque em Django?

Não tem problema, aqui na Python Academy você conta com o melhor material sobre essa importante ferramenta!

Acesse agora:

:ballot_box_with_check: Django: Introdução ao framework
:ballot_box_with_check: Django: A Camada Model
:ballot_box_with_check: Django: A Camada View
:ballot_box_with_check: Django: A Camada Template

Ou se preferir, baixe nosso ebook GRÁTIS de Desenvolvimento Web com Python e Django:

Ebook GRÁTIS

DESENVOLVIMENTO WEB COM PYTHON E DJANGO

Capa Ebook Desenvolvimento Web com Python e Django

Conteúdo:

  • :point_right: Veja como modelar sua aplicação
  • :point_right: Utilize a robusta API de Acesso a Dados do Django
  • :point_right: Aprenda sobre Class Based Views
  • :point_right: Construa Middlewares próprios
  • :point_right: Desenvolva filtros e tags customizados para criar lindos templates
Baixe já!

Sem mais delongas, vamos para o Django REST Framework, ou DRF para os íntimos.

O que é o Django Rest Framework?

O Django Rest Framework (DRF) é uma biblioteca de alta performance, flexível e robusta para criar APIs RESTful usando Django.

Ele fornece um kit de ferramentas de ponta para criar APIs, oferecendo uma série de vantagens como autenticação, permissões, serialização e muito mais.

A integração com Django é perfeita, tornando-o ideal para desenvolvedores que já estão familiarizados com o ecossistema Django.

Como o Django Rest Framework facilita o desenvolvimento de APIs REST

Vamos ver algumas das várias vantagens de se utiliar o DRF para construção de APIs Rest:

Serialização de Dados

A serialização é um conceito crucial ao trabalhar com APIs.

Ela permite converter complexos tipos de dados do Django para formatos JSON, XML, etc., e vice-versa.

O DRF facilita essa tarefa com suas poderosas classes de serialização.

Veja como é fácil criar uma classe de Serialização para converter um Model do Django - chamado de Livro - e seus campos: titulo, autor, isbn e publicacao:

1
2
3
4
5
6
7
from rest_framework import serializers
from .models import Livro

class LivroSerializer(serializers.ModelSerializer):
    class Meta:
        model = Livro
        fields = ['titulo', 'autor', 'isbn', 'publicacao']

Views Genéricas Baseadas em Classes

O DRF oferece um conjunto de Views Genéricas que simplificam a criação de operações CRUD.

Usar essas views genéricas economiza muito tempo e reduz a complexidade do código:

1
2
3
4
5
6
7
from rest_framework import generics
from .models import Livro
from .serializers import LivroSerializer

class LivroListCreateView(generics.ListCreateAPIView):
    queryset = Livro.objects.all()
    serializer_class = LivroSerializer

No exemplo acima, é utilizada a generics.ListCreateAPIView para criar uma View que vai possibilitar a Listagem de Livros (o Retrieve do CRUD) e a Criação de Livros (o Create do CRUD).

Nenhum código adicional é necessário! Essa é a mágica!

Autenticação e Permissões

Outra área onde o DRF brilha é na autenticação e controle de permissões.

Ele oferece diversos métodos de autenticação e uma infraestrutura fácil de usar para definir permissões que controlam o acesso às diferentes partes da API.

Vamos a um exemplo:

1
2
3
4
5
6
7
8
9
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import api_view, permission_classes

@api_view(['GET'])
@permission_classes([IsAuthenticated])
def lista_livros(request):
    livros = Livro.objects.all()
    serializer = LivroSerializer(livros, many=True)
    return Response(serializer.data)

Explicações:

  • Nesse código é utilizado o decorator @api_view definindo que a View só permite o método HTTP GET.
  • O decorator @permission_classes define os tipos permitidos de autenticação para essa View. IsAuthenticated define que essa View só estará disponível para usuários já autenticados no sistema.
  • def lista_livros define uma Function Based View que irá buscar todos os registros de Livros (com Livro.objects.all()), serializá-los (com LivroSerializer(livros, many=True)) e formula uma Resposta HTTP com os dados serializados (em Response(serializer.data)).

Além de oferecer suporte a diversos mecanismos de autenticação como token-based authentication, session-based authentication, OAuth, entre outros.

Está curtindo esse conteúdo? :thumbsup:

Que tal receber 30 dias de conteúdo direto na sua Caixa de Entrada?

Sua assinatura não pôde ser validada.
Você fez sua assinatura com sucesso.

Assine as PyDicas e receba 30 dias do melhor conteúdo Python na sua Caixa de Entrada: direto e sem enrolação!

Browsable API

Uma das funcionalidades mais incríveis do DRF é sua Interface Navegável (do inglês Browsable API), que permite testar e interagir com sua API diretamente pelo navegador, tornando o desenvolvimento e o debug muito mais simples.

Nela você pode:

  • Acessar os dados cadastrados;
  • Testar sua API, realizando chamadas HTTP pelo próprio browser;
  • Possui autenticação e autorização integrados;
  • Possui uma ótima e amigável interface.

Por exemplo, a seguinte imagem é um exemplo dessa interface:

Interface Navegável

E também:

Interface Navegável

E isso tudo sem desenvolver uma linha sequer de código HTML, CSS ou Javascript!

Incrível não é mesmo?! :heart_eyes:

Filtragem e Paginação

O DRF facilita a filtragem e paginação dos dados, o que é essencial para a performance e experiência do usuário em APIs que lidam com grandes volumes de dados.

Veja como é simples adicionar, por exemplo, a paginação à respostas de sua API:

1
2
3
4
5
6
7
8
9
from rest_framework.pagination import PageNumberPagination

class LivroPagination(PageNumberPagination):
    page_size = 10

class LivroListView(generics.ListAPIView):
    queryset = Livro.objects.all()
    serializer_class = LivroSerializer
    pagination_class = LivroPagination

Apenas herdando de PageNumberPagination e configurando page_size você já é capaz de adicionar paginação à sua API!

:wave: Ei, você aí! Quer se sentir realmente capaz ao desenvolver Aplicações Web com Django? Então clique no link abaixo e dê o próximo passo agora mesmo!

Throttling

O throttling limita a taxa de pedidos a uma API, prevenindo abuso e evitando sobrecarregar o servidor.

Muito importante para proteger sua aplicação e evitar que seu servidor seja “derrubado” por algum cliente que esteja tentando acessar sua API mais do que o esperado.

Testes Integrados

O DRF também fornece ferramentas para facilitar os testes, como APITestCase, que estende as funcionalidades do Django TestCase.

1
2
3
4
5
6
from rest_framework.test import APITestCase

class LivroAPITests(APITestCase):
    def test_lista_livros(self):
        response = self.client.get('/api/livros/')
        self.assertEqual(response.status_code, 200)

Dessa forma, criar testes se torna uma tarefa simples!

Documentação Integrada

O DRF possui diversas ferramentas para geração automática de documentação da sua API.

Ao integrar com ferramentas como Swagger ou CoreAPI, o DRF permite gerar documentação automática e interativa com pouco trabalho adicional.

Conclusão

Neste artigo, exploramos o que é o Django Rest Framework e como ele facilita o desenvolvimento de APIs RESTful.

Também vimos algumas de suas principais funcionalidades, como serialização, autenticação, permissões e roteamento automatizado.

O uso do DRF pode transformar a maneira como você desenvolve APIs, tornando o processo mais rápido e eficiente.

Se você trabalha com Django e precisa criar APIs robustas e escaláveis, o Django Rest Framework é uma ferramenta indispensável.

Fique ligado nos próximos artigos, vamos aprender muito mais sobre cada característica que vimos aqui!

Até lá, dev.

Começe agora sua Jornada na Programação!

Não deixe para amanhã o sucesso que você pode começar a construir hoje!

#newsletter Olá :wave: Curtiu o artigo? Então faça parte da nossa Newsletter! Privacidade Não se preocupe, respeitamos sua privacidade. Você pode se descadastrar a qualquer momento.