O que é o Django Rest Framework (DRF)?

Cansado de programar?

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

Projetos práticos

Projetos práticos voltados para o mercado de trabalho

Prática profissional

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

Download do Artigo

✅ Artigo atualizado em Setembro 2026 Versões revisadas para o DRF 3.18 (compatível com Django 5.2 LTS, 6.0 e 6.1), removida a promessa de “async views” no DRF (ele não tem views assíncronas nativas) e trocada a menção ao CoreAPI (removido no DRF 3.17) pelo drf-spectacular. Os exemplos foram executados com Django 6.1.1 e DRF 3.18.1.

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:

Este artigo faz parte do Guia Completo de Django REST Framework. Lá você encontra o caminho inteiro para criar APIs profissionais: serializers, ViewSets, autenticação, filtros, paginação, testes e deploy.

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.

💡 Versão atual: o DRF 3.18 (setembro de 2026) suporta Django 5.2 LTS, 6.0 e 6.1 e Python 3.10 ou superior. Atenção: o DRF não tem views assíncronas nativas - quem precisa de async def nas views de API usa o pacote de terceiros adrf, citado na própria documentação do DRF.

Saber o que o DRF faz é a parte fácil; a parte que separa quem programa de quem só lê sobre é sentar e escrever esse código, com projetos guiados e suporte de professor. É isso que a Jornada Python oferece:

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 Read 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
10
11
12
from rest_framework.permissions import IsAuthenticated
from rest_framework.decorators import api_view, permission_classes
from rest_framework.response import Response
from .models import Livro
from .serializers import LivroSerializer

@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 as regras de permissão dessa View (quem autentica o usuário são as authentication classes, configuradas à parte). 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 disso, o DRF traz de fábrica autenticação por sessão, token e Basic, e se integra com pacotes de terceiros para JWT (como o djangorestframework-simplejwt) e OAuth2 (como o django-oauth-toolkit).

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
10
from rest_framework import generics
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!

:bulb: Estou construindo o Ebookr.ai, uma plataforma onde você cria ebooks profissionais com IA sobre qualquer assunto - do zero ao PDF pronto, com capas e infográficos gerados automaticamente. Dá uma olhada!

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 gera esquemas OpenAPI da sua API, e a partir deles dá para ter documentação interativa (Swagger UI, ReDoc) com pouco trabalho adicional.

Hoje a própria documentação do DRF marca a geração de OpenAPI embutida como descontinuada (deprecated) e recomenda o pacote drf-spectacular. O antigo suporte ao CoreAPI foi removido no DRF 3.17.

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, views genéricas, autenticação, permissões, paginação e testes.

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.

Quer aprender a construir APIs REST na prática, dentro de um projeto completo? Conheça o curso de Django da Jornada Python.

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.