Django Rest Framework de A a Z Domine o ecossistema das APIs REST com back-ends escaláveis

Tiago Silva

*Você terá acesso às futuras atualizações do livro.

Sobre o livro

Prefácio

Este livro foi criado com o intuito de compartilhar com você, leitor ou leitora, meus conhecimentos e experiências com uma das ferramentas mais utilizadas no Django para criação de APIs RESTful.

O conteúdo abordado aqui irá diretamente ao assunto principal. Considero interessante que você tenha conhecimento sobre Django, mas, caso não tenha, não se preocupe, haverá um capítulo sobre a configuração de um projeto em Django antes do início do conteúdo sobre o Django REST Framework, que é o foco principal deste livro. Se tiver interesse de conhecer mais sobre o Django, a Casa do Código possui o livro 'Django de A a Z: Crie aplicações web rápidas, seguras e escaláveis com Python', que tive o prazer de escrever e poderá ser de grande proveito para você, basta acessar o link https://www.casadocodigo.com.br/products/livro-django-a-z.

O objetivo principal do livro é servir como um manual diário que terá tudo o que é necessário para você construir uma API REST com Django, seja em uma aplicação construída do zero ou em um projeto que já esteja em andamento e você precise implantar uma API. Durante todo o livro, veremos imagens que expressam o resultado desejado da API que construiremos, para ajudar você a acompanhar o desenvolvimento da API até o resultado final.

Fico alegre em saber que este livro é capaz de preparar pessoas para o mercado de trabalho em que o Python e suas ferramentas como Django, Flask e muitas outras têm ganhado grande espaço e têm sido muito requisitadas e valorizadas nos dias de hoje. Com este guia você obterá o conhecimento necessário para implantar soluções de APIs escaláveis e robustas com capacidade para alta performance, de forma segura e sem dificuldades.

Ao longo do livro, compartilho algumas dicas para ajudá-lo a evitar problemas que enfrentei no dia a dia com o uso do Django REST Framework como ferramenta que complementa uma aplicação Django, de modo que você tenha uma ótima produtividade enquanto estiver trabalhando com ela.

O objetivo principal é que você consiga criar APIs em pouco tempo, de forma consistente e segura. Faça bom proveito deste conteúdo. É um imenso prazer poder continuar compartilhando com você o conhecimento que outras pessoas compartilharam comigo ao longo de minha carreira. Desejo-lhe todo o sucesso do mundo.

Tiago Silva

Sobre o livro

Neste livro, você aprenderá a criar uma API RESTful com o Django REST Framework, o maior 'toolkit' para APIs REST que existe para o ecossistema Django. Considerado uma das soluções mais robustas da atualidade para esse tipo de desenvolvimento, o 'framework' permite criar APIs de alta performance com facilidade de implementação e uma documentação excelente e extremamente útil.

A primeira versão oficial estável da ferramenta foi a 2.0.0, publicada em 17 de outubro de 2012. Antes dela, existia a versão 0.4.0, que atualmente não está mais disponível no GitHub do projeto. Entre os principais motivos para sua ampla utilização estão a facilidade de implementação, a segurança e a robustez.

Estrutura do livro: teoria e prática (o equilíbrio)

Este livro foi desenhado com uma estrutura híbrida proposital para abordar os dois pilares fundamentais de um engenheiro de software sênior: prática extrema e fundamentação teórica.

Você encontrará capítulos inteiramente dedicados ao "mão na massa", nos quais construiremos, passo a passo, o projeto 'ProductManager', enfrentando erros reais e configurando ferramentas como Docker, CI/CD, Redis e Celery. Esses capítulos exigem que você esteja com seu editor de código aberto na tela e muita atenção aos detalhes.

Intercalados entre eles, existem capítulos focados em engenharia e arquitetura. Nesses momentos, faremos uma pausa no código para mergulhar em conceitos de 'design de software', segurança ofensiva, performance e boas práticas, para que seu projeto em Python se torne muito mais robusto e profissional. Não pule essas seções! Elas representam o diferencial que transforma um “programador de 'framework'” em um arquiteto de software capaz de tomar decisões técnicas de alto nível.

Se você é ansioso por código, saiba que o conteúdo teórico apresentado aqui não é vazio, mas sim a base necessária para que sua aplicação escale e não apresente falhas em produção para o usuário final.

Um breve panorama do mercado de trabalho com Django

A linguagem de programação Python está em alta no mercado de trabalho e cresce continuamente. A cada ano, mais profissionais com experiência em Python têm sido requisitados. Não apenas nas profissões de TI, mas também em áreas como contabilidade, finanças e outras, Python vem sendo aplicado na formação de profissionais desde a graduação, já fazendo parte da grade curricular de diversos cursos.

Empresas como Meta, Google e LinkedIn buscam profissionais com conhecimento em 'frameworks' da linguagem Python, como Django, Flask e Tornado. Apesar de não ser um 'framework' independente, o Django REST Framework é um conjunto de ferramentas que possibilita implementar APIs em aplicações Django. Por isso, muitas empresas que utilizam essa tecnologia têm buscado profissionais especializados na implementação de APIs em seus sistemas.

Entre as principais empresas que utilizam Django como 'framework' para o desenvolvimento de suas plataformas web da atualidade, temos: Spotify, Instagram, YouTube, Dropbox, Bitbucket, Disqus, The Washington Post, Mozilla, Prezi, Pinterest, Reddit, Udemy, MIT e Coursera. O domínio do Django REST Framework tornou-se um grande diferencial para profissionais da área.

Para quem é este livro e quais os pré-requisitos

Este livro foi estruturado para levar você do zero absoluto em APIs até conceitos avançados de Arquitetura de Software.

O público-alvo são desenvolvedores que desejam não apenas "fazer funcionar", mas entender a fundo como construir sistemas resilientes, seguros e escaláveis. Se você é iniciante, os primeiros capítulos lhe darão uma base sólida. Se você já tem experiência, os capítulos finais sobre Docker, testes de carga, segurança ofensiva e Arquitetura Limpa o desafiarão a elevar seu nível técnico.

Como pré-requisito, é necessário que você tenha conhecimento básico em Python e Django. A Casa do Código possui um livro que eu mesmo escrevi chamado 'Django de A a Z' para reforçar seu conhecimento (https://www.casadocodigo.com.br/products/livro-django-a-z). É recomendável também que você consiga trabalhar com linhas de comando via terminal, pois usaremos comandos do ecossistema Django durante todo o projeto.

O que aprenderei neste livro?

Você aprenderá a criar uma API REST segura, robusta e de alto desempenho, preparada para ambientes reais de produção.

Utilizaremos o projeto de um Sistema de Gestão de Produtos como base para explorar conceitos profundos:

- Fundamentos: serialização, ViewSets, Routers e autenticação JWT.

- Qualidade: testes automatizados (unitários e integração), CI/CD e Clean Code.

- Infraestrutura: Docker, Docker Compose e preparação para 'cloud'.

- Performance: Caching com Redis, Throttling, paginação e otimização de consultas (N+1).

- Segurança: Proteção contra ataques comuns (OWASP), permissões personalizadas e boas práticas de mercado.

Ao final, você não terá apenas uma API funcionando, mas um portfólio de código que segue os padrões exigidos por grandes empresas de tecnologia.

Como estudar com este livro?

O livro foi escrito para ser um guia "mão na massa" ('hands-on'). A teoria é apresentada sempre conectada a um problema real que resolveremos juntos no código.

Recomendo que você digite os exemplos (não apenas copie e cole), pois a memória muscular ajuda na fixação. Além do código, preste atenção nas caixas de "dicas de sênior" espalhadas pelos capítulos: elas contêm a experiência de quem já enfrentou esses problemas em produção.

Sumário

  • Parte 1: Configuração do ambiente
  • 1. O universo das APIs: da origem à conectividade global
    • 1.1 O que é, afinal, uma API?
    • 1.2 Uma breve história da integração
    • 1.3 Arquitetura de Software: do monólito aos microsserviços
    • 1.4 O protocolo da web: HTTP em profundidade
    • 1.5 REST: as 6 restrições arquiteturais (constraints)
  • 2. Configuração do Python
    • 2.1 Instalando o Python e suas dependências
    • 2.2 Escolhendo uma IDE
    • 2.3 Testando o ambiente para começar
  • 3. Configurando o projeto Django
    • 3.1 Instalando o Django
    • 3.2 Criando o projeto
    • 3.3 Sobre o projeto
    • 3.4 Arquivos de configuração do projeto
  • 4. Nosso primeiro run
    • 4.1 Criando as models do projeto
    • 4.2 Configurando o Django REST Framework
  • Parte 2: O essencial do Django REST Framework
  • 5. Serialização
    • 5.1 Serializando as models
    • 5.2 Campos e argumentos da classe Serializer
  • 6. Validators - Validações no serializador
    • 6.1 Tipos de validators
    • 6.2 Padrões avançados de validators
    • 6.3 Criando validators customizados
  • 7. Autenticação JWT e Autorização no Django REST Framework
    • 7.1 Autenticação JWT no DRF
    • 7.2 Endpoint de login com JWT
    • 7.3 Customizando o login
  • 8. Views e paginação: criando nossas views no Django REST Framework
    • 8.1 Antes de começar
    • 8.2 Model views
    • 8.3 Generic views
    • 8.4 Paginação
  • 9. Automatizando processos com signals
    • 9.1 O cenário
    • 9.2 Criando nossos sinais em uma estrutura organizacional
    • 9.3 Registrando os sinais na aplicação
    • 9.4 Testando a automação
    • 9.5 Aprofundando em signals (teoria avançada)
  • Parte 3: Deploy e outros recursos avançados do Django REST Framework
  • 10. Testes unitários
    • 10.1 Exemplos de testes
    • 10.2 Como executar os testes
    • 10.3 Criando mais testes para nosso projeto
    • 10.4 Indo além: testes avançados
  • 11. Documentação de APIs com OpenAPI e Swagger
    • 11.1 Documentando APIs no Django REST Framework
    • 11.2 Personalizando a documentação
  • 12. Preparando seu projeto para o Docker
    • 12.1 Passo a passo: criando o Dockerfile
    • 12.2 Passo a passo: criando o docker-compose.yml
    • 12.3 Instalando o Docker no seu computador
    • 12.4 Como rodar o projeto com Docker
    • 12.5 Dicas avançadas
    • 12.6 Bônus: fazendo o deploy da sua API
  • 13. Monitoramento e logging em APIs Django REST
    • 13.1 Configurando logging no Django
    • 13.2 Registrando logs na sua API
    • 13.3 Métricas em sua API - integrando Prometheus ao Django
    • 13.4 Monitorando erros com Sentry
    • 13.5 Boas práticas de monitoramento e logging
  • 14. Teste de estresse com Locust
    • 14.1 Locust
    • 14.2 Executando testes visualmente via interface web
    • 14.3 Estudos de caso
  • 15. Streaming e WebSocket
    • 15.1 O que é streaming?
    • 15.2 Mãos na massa: exportação de produtos via streaming
    • 15.3 O que é WebSocket?
    • 15.4 Mãos na massa: notificações de estoque em tempo real
    • 15.5 Dicas para projetos reais
  • 16. Recursos assíncronos e background tasks com Celery
    • 16.1 Por que processamento assíncrono?
    • 16.2 O que é o Celery?
    • 16.3 Mãos na massa: implementando o Celery
    • 16.4 8. Automatizando no Docker Compose (dica avançada)
    • 16.5 Monitoramento (opcional)
  • Parte 4: Arquitetura, segurança e outros recursos extras
  • 17. Arquitetura Limpa e boas práticas: a arte da Engenharia de Software no Django
    • 17.1 Onde mora a lógica de negócios?
    • 17.2 DRY (Don't Repeat Yourself) de verdade
    • 17.3 Tratamento de erros elegante (Exception Handling)
    • 17.4 Segurança e controle: Throttling
    • 17.5 Organização de código e "Code Smells"
  • 18. Segurança ofensiva e otimização extrema: o nível Principal Engineer
    • 18.1 Segurança: além do básico
    • 18.2 Performance: o gargalo invisível
    • 18.3 Caching com Redis: velocidade da luz
  • 19. Apêndice A: cheat sheet (folha de cola)
    • 19.1 Docker e Docker Compose
    • 19.2 Django (gerenciamento)
    • 19.3 HTTP status codes (os essenciais)
    • 19.4 Django REST Framework (DRF)
    • 19.5 Comandos de teste (Pytest/Unittest)
  • 20. Apêndice B: O caminho para Staff Engineer e Principal Engineer (roadmap)

Dados do produto

Número de páginas:
334
ISBN:
978-85-5519-442-9
Data publicação:
10/2026

Compartilhe!

Compartilhe no Facebook Compartilhe no Twitter

*Você terá acesso às futuras atualizações do livro.