Olá! Meu nome é Laís Urano e sou instrutora na Escola de Programação da Alura. Dou a você as boas-vindas a este curso de Django Rest Framework!
Audiodescrição: Laís se autodeclara como uma mulher parda. Tem olhos castanhos e cabelos cabelos cacheados, volumosos, compridos e também castanhos, com algumas mechas azuis na parte de baixo. Tem um piercing no septo e está de camiseta preta. Ao fundo, um dos estúdio da Alura - ambiente com iluminação verde e azul e uma estante com itens de decoração à sua direita.
Este curso é para você que deseja aprender a criar uma API utilizando Python com o Django Rest Framework.
Para isso, é necessário ter conhecimento na linguagem Python e também no Framework Django.
Ao longo das aulas, vamos aprender a desenvolver uma API do zero, desde a criação de modelos, configuração de serializers (serializadores), views, URLs e também a autenticação das nossas rotas.
Faremos tudo isso em um projeto de API de uma escola, em que criaremos os recursos de estudante, cursos e matrículas.
Vamos lá?!
O objetivo do nosso projeto é desenvolver uma API para uma escola. Todas as informações sobre essa API estão no Trello (plataforma de gerenciamento de projetos) do curso. Nele, temos quatro listas: a lista de ferramentas, o backlog com cada recurso que precisamos construir, a lista de itens em desenvolvimento e a de itens finalizados.
Antes de tudo, precisamos entrar no card "API", que está na lista de ferramentas, para conferir as informações gerais da API a ser construída.
No campo de Descrição desse card, temos que essa escola terá três modelos: Estudantes, Cursos e Matrículas. Ou seja, precisamos criar estudantes e cursos e também fazer as matrículas dos estudantes nos cursos.
Também teremos algumas rotas, sendo três delas equivalentes aos modelos — rota de Estudantes, Cursos e Matrículas — e outras duas rotas referentes às Matrículas por Estudante e Matrículas por curso.
Informações Gerais da API:
- Modelos de Estudantes, Cursos e Matrículas
- Rotas de Estudantes, Cursos, Matrículas, Matriculas por Estudante e Matrícula por Cursos
Além disso, temos a informação técnica da versão do Django REST Framework necessária para construir essa API:
Informações Técnicas:
- Versão mais atual do Django REST Framework
Se clicarmos na capa desse card, na parte superior dele, temos uma imagem que mostra como deve ser essa API:
Conforme essa imagem, precisamos de uma interface que mostrará as rotas principais, equivalentes aos modelos de Estudantes, Cursos e Matrículas.
Agora podemos iniciar buscando a versão mais atual do Django REST Framework. Para isso, vamos abrir uma nova guia no navegador, digitar "django rest framework" no campo de busca e pressionar "Enter".
Vamos clicar no primeiro link não patrocinado da página de resultados, o Django REST Framework Org, onde temos a documentação desse framework.
Na lateral esquerda temos um menu de links para navegação nessa documentação. Na parte superior, temos um menu de páginas que contém "Home", a página inicial em que estamos agora, "Tutorial", "API Guide" (guia de API), "Topics" (tópicos) e "Community" (comunidade).
No centro da página inicial, temos uma breve introdução sobre o Django REST Framework: uma ferramenta poderosa e flexível para a construção de APIs web.
Mas, de que precisamos exatamente para começar a construir com o Django REST Framework?
Vamos descer um pouco a página inicial até a seção de Requirements (requisitos), onde temos a informação de que o REST Framework requer uma das seguintes versões do Python e do Django:
- Django (4.2, 5.0)
- Python (3.8, 3.9, 3.10, 3.11, 3.12)
Informações de junho de 2024.
Conforme as informações técnicas do nosso projeto, precisamos garantir qual é a versão mais atualizada do Django REST Framework e as versões do Django e Python suportadas por ela.
Para isso, vamos clicar em "Community" no menu superior. Na lista dropdown, conferimos que o último lançamento desse framework é a versão 3.15 (em março de 2024). Clicando em "3.15 Announcement", temos que as últimas versões suportadas são: Django 5.0 e Python 3.12. Então, vamos utilizá-las.
Vamos entrar no VSCode na nossa máquina, com a pasta do projeto aberta (pasta "escola"), e abrir o terminal com o atalho "Ctrl + J.
Vamos verificar qual a versão do Python que está instalada, porque queremos garantir que é a versão 3.12. Para isso, rodamos o seguinte comando:
python --version
Para a instrutora, a resposta é de que a versão instalada em sua máquina é a 3.12.2, ou seja, a versão mais atual.
Podemos, então, começar a configurar o ambiente para criar o projeto.
Primeiramente, criamos um ambiente virtual com Python, rodando o seguinte comando no terminal:
python -m venv venv
Criada a pasta "venv", precisamos ativar esse ambiente virtual. Rodamos o seguinte comando:
venv\Scripts\activate.bat
Caso você esteja utilizando o Linux, o comando para ativar é diferente:
source venv/bin/activate
Com a nossa venv instalada, já podemos começar a instalar as nossas dependências.
Primeiramente, queremos saber a versão específica do Django que queremos instalar. Vamos abrir o nosso navegador novamente e buscar por "django download". Vamos clicar no primeiro link da página de resultados, para a própria documentação do Django sobre download.
Descendo um pouco essa página, temos uma tabela com as informações das últimas versões do Django lançadas, sendo a mais recente a versão 5.0.3 (em junho de 2024). Vamos voltar para o VSCode para instalá-la.
No terminal, vamos rodar o seguinte comando para instalar uma versão específica do Django:
pip install Django==5.0.3
Enquanto aguardamos o download, podemos criar o que é necessário para construir um projeto em Django: um projeto e também um aplicativo.
Vamos começar criando o projeto de nome setup
, um nome padrão, rodando o seguinte comando no terminal:
django-admin startproject setup .
Em seguida, precisamos criar o nosso aplicativo, que será chamado escola
, com o seguinte comando:
python manage.py startapp escola
Agora precisamos conectar o nosso aplicativo com o nosso projeto.
Para isso, podemos fechar o terminal com "Ctrl + J" e abrir o menu Explorer à esquerda do VS Code para acessar a pasta "setup". Nela, vamos abrir o arquivo settings.py
e descer até os aplicativos instalados, INSTALLED_APPS
, na linha 33.
Ao final desse objeto, antes do fechamento dos colchetes, vamos criar uma linha e abrir e fechar aspas com o nome escola
, adicionando uma vírgula ao final pois trata-se de uma tupla.
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'escola',
]
Também faremos duas configurações nesse arquivo. Na linha 107, onde temos o LANGUAGE_CODE
, vamos alterar a língua do aplicaivo de en-us
(inglês americano) para pt-br
(português brasileiro), entre aspas simples.
Na linha 109, onde temos o TIME_ZONE
, vamos definir como America/Sao_Paulo
, também entre aspas simples.
LANGUAGE_CODE = 'pt-br'
TIME_ZONE = 'America/Sao_Paulo'
Temos o nosso aplicativo e nosso projeto configurados adequadamente e conectados! Podemos começar a criar a nossa aplicação.
Agora que temos nosso aplicativo e projeto configurados, podemos começar a construção da nossa API. Como sabemos, o próprio Django é um framework que oferece inúmeras possibilidades, inclusive a construção de API, então o usaremos para isso!
No VSCode, vamos abrir a pasta "escola" e acessar as nossas views, no arquivo views.py
, pois queremos criar uma API utilizando somente o Django.
A primeira linha desse arquivo importa o render
de django.shortcuts
, e depois temos um comentário Create your views here
. Podemos apagar todo esse código, pois não vamos utilizá-lo.
Em vez disso, vamos importar o JsonResponse
do django.http
:
views.py
from django.http import JsonResponse
Vamos criar um GET nesse arquivo para que, no momento em que a pessoa acessar a nossa rota, passarmos uma informação para ela.
Para isso, criamos uma função chamada estudantes
, recebendo uma request
(solicitação) como parâmetro para solicitá-la. Então: def estudantes(request):
.
Se essa request
for igual a 'GET'
, ou seja, se essa requisição for do tipo GET, queremos executar uma ação. Para isso, teremos if request.method == 'GET':
.
Essa ação será criar um estudante, ou seja, um dicionário qualquer chamado estudante
, contendo algumas informações.
Numa API, geralmente temos informações como o id
dessa entidade, que vamos definir como 1
(com o código'id': '1'
). Também temos um nome
, que será o nome do estudante no nosso caso. Podemos definir esse nome como Laís, por exemplo, com 'nome': 'lais'
.
Temos um estudante. Agora, no momento em que a pessoa faz a requisição, queremos passar esse estudante. Para isso, vamos retornar um JsonResponse
com esse estudante
. Ou seja: return JsonResponse(estudante)
.
O JsonResponse
, basicamente, vai transformar a informação de estudante
, um dicionário do tipo Python, em um tipo JSON para colocar na nossa API.
Nossa função ficará assim:
views.py
def estudantes(request):
if request.method == 'GET':
estudante = {
'id':'1',
'nome':'lais'
}
return JsonResponse(estudante)
Agora que temos essa informação, o próximo passo é criar a nossa rota. Então, na pasta de "setup", vamos abrir o arquivo urls.py
.
Podemos apagar o comentário que vem por padrão nesse arquivo, que explica um pouco mais sobre URLs.
Vamos importar o método estudantes
que criamos nas nossas views do projeto "escola":
url.py
from escola.views import estudantes
Dentro do urlpatterns
, vamos colocar o nosso novo path, ou seja, a rota de estudantes. Neste caso, criamos mais um path()
recebendo o caminho estudantes/
e a view equivalente àquele estudante, ou seja, estudantes
.
urlpatterns = [
path('admin/', admin.site.urls),
path('estudantes/',estudantes),
]
Agora podemos começar a verificar o resultado. Reabrimos o terminal com "Ctrl + J" e rodamos o seguinte comando para subir o servidor:
python manage.py runserver
Com o servidor rodando, recebemos a resposta com a informação de que existem algumas migrações não aplicadas, mas não tem problema. Vamos copiar o link da linha "Starting development server at" (que deverá ser parecido com o da instrutora, http://127.0.0.1:8000/
) e colar no campo de URL de uma nova aba do navegador para acessá-lo.
Como retorno, a página informa que essa rota não foi encontrada. Mas a rota estudantes
existe, então completamos a URL com /estudantes
(por exemplo, a URL da instrutora ficou http://127.0.0.1:8000/estudantes
).
Essa página exibe exatamente o dicionário que criamos com as informações de estudante
:
{"id":"1", "nome":"lais"}
Conseguimos passar a informação para a nossa rota, mas não de uma forma muito eficiente, pois tivemos que construir um dicionário para isso. Em outras palavras, nós conseguimos trabalhar apenas com o Django, mas de uma forma bem mais limitada e complexa.
Foi com o surgimento dessa demanda por construções de APIs e APIs REST no mercado que surgiu o Django REST Framework. Ele é, basicamente, um framework que utiliza os recursos do Django com alguns recursos adicionais voltados apenas para a construção de APIs web. E é com esse framework que vamos começar a trabalhar!
O curso Django REST Framework: construindo APIs RESTful do Zero possui 105 minutos de vídeos, em um total de 43 atividades. Gostou? Conheça nossos outros cursos de Python em Programação, ou leia nossos artigos de Programação.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.