Tá acabando!

Compre agora com desconto
Corra enquanto há tempo!

dias

:

horas

:

minutos

:

segundos

Primeiras aulas do curso API com Django 3: Django Rest Framework

API com Django 3: Django Rest Framework

Instalando o Django Rest API - Introdução

Olá. Meu nome é Guilherme Lima, e eu serei o seu instrutor neste curso de API Rest com Django.

Nesse treinamento, o que a gente vai aprender? A gente vai aprender a criar uma API do zero, utilizando a linguagem Python e Django Rest Framework, integrando os nossos dados num banco de dados, vinculando o admin do Django com a nossa API, entendendo que são serializer, views set. Tudo isso, seguindo boas práticas de programação.

Fazendo esse curso, você vai ser capaz de criar suas próprias APIs. Nesse treinamento, a gente vai criar essa API aqui, uma API de uma escola, onde a gente vai ser capaz de criar alunos, visualizar os dados desse aluno, atualizar tanto alunos, como curso, e vincular esses nossos dois recursos, criando, assim, as matrículas dos alunos.

Legal? Então a gente vai entender tudo isso, e vinculando o admin do Django com a nossa API também.

Fazendo esse curso, você vai ser capaz de criar suas próprias APIs, vinculando modelos, recursos diferentes, entendendo o funcionamento e o padrão Rest.

Legal? Quais são os pré-requisitos deste treinamentos? É muito importante que você tenha visto os cursos anteriores de Django, porque a gente vai dar continuidade a partir deles.

Para quem é esse curso? Esse curso é para todas as pessoas que tem vontade de entender o que é uma API, criar uma API. Pessoas que talvez nunca criaram uma API, porque a gente vai desde os fundamentos, até a nossa API funcionando.

Talvez, se você é um expert em API, já trabalha há muito tempo no mercado, e tem muito conhecimento dessa área, talvez esse curso isso não seja recomendada para você, porque a gente vai consolidar bastante os nossos fundamentos sobre o desenvolvimento de uma API, utilizando o Phyton e o Django Rest Framework.

Sabendo disso, vamos começar?

Instalando o Django Rest API - O que é uma API?

Para a gente botar a mão na massa e começar a criar as linhas de código para desenvolver a nossa API, vamos responder à seguinte pergunta: o que é uma API? O que uma API faz?

Certo? E para explicar isso, vou utilizar um exemplo muito comum do nosso dia a dia. Pense num grupo de amigos que foi numa determinada pizzaria. Chegando lá, eles são atendidos por um garçom, que passa a lista de pizzas que aquela pizzaria faz. E eles decidem comer a pizza de pepperoni, por exemplo.

O garçom pega aquele pedido, feito por aqueles clientes, entrega para a equipe que vai criar aquela pizza para os pizzaiolos, e vai falar: chegou um pedido dos clientes de uma pizza de pepperoni.

Aquela equipe, que vai criar aquela pizza, assa aquela pizza, prepara. Quando essa pizza está feita, o garçom vai lá, pega essa pizza de pepperoni, e leva para aqueles clientes que fizeram aquele pedido.

Certo. Você pode se perguntar: o que a pizza de pepperoni, o garçom, os clientes e o pizzaiolo tem a ver com o API Rest? Tem tudo a ver com o API.

Observe que se a gente separar essas três entidades, nós temos os clientes que fizeram os pedidos, que podem ser representados também, no mundo da computação, por um sistema web, outra aplicação mobile que vai fazer um pedido para alguém.

Não vai fazer um pedido para um garçom, vai fazer um pedido para uma API, trazendo aqui para o nosso contexto. Então, outro sistema vai fazer um pedido. Esse pedido, a gente vai chamar de requisição.

Então, eu vou fazer uma requisição, por exemplo, para saber quantos alunos estão matriculados em um determinado curso. A API vai pegar essa requisição, e de alguma forma ela precisa acessar os dados criados em algum outro lugar para exibir uma resposta para aquele cliente que fez o pedido.

Então, ele vai lá pega, esses dados, ou pega uma funcionalidade. Uma API pode disponibilizar dados e informações, ou funcionalidades, para aqueles clientes que fizeram pedido.

E assim que ele tem aquele pedido, assim como o garçom pegou a pizza de pepperoni levou para os clientes que fizeram, a API vai pegar aqueles dados e vai devolver uma resposta para o cliente que fez o pedido.

Se a gente for caçando esses três, a gente tem uma coisa interessante, olha só. Esse sistema web, independente da linguagem que ele foi feito, se ele foi feito em Python, em Java, em Ruby ou outra aplicação mobile, não importa. A gente vai conseguir atender todos os pedidos feitos através de requisições e respostas.

Certo? Então, um sistema web, feito em outra linguagem, vai fazer um pedido, vai fazer uma requisição, e a gente vai exibir essa resposta. E essa resposta, geralmente é enviada de volta num formato de Json ou XML.

Então, se a gente parar para pensar no que uma API faz, o que é uma API, a API é um núcleo comum, de funcionalidades, que pode ser usado por várias plataformas diferentes, sendo elas aplicações web, sites, aplicações móveis, ou até outras APIs.

Sabendo disso, no próximo vídeo, vamos começar a escrever nossos códigos, e criar a nossa primeira API, entendendo todo esse fluxo de eu fazer um pedido, e depois eu tenho uma resposta, não de uma página web, mas sim de informações de dados, de funcionalidades.

Instalando o Django Rest API - Requisição GET

Vamos iniciar, então, o desenvolvimento da nossa API? Bom, nas atividades anteriores, a gente tem um passo a passo, mostrando como a gente cria um projeto com o Django, como a gente instala o Django, como a gente utiliza a VENV, o ambiente virtual do Django, e a gente chega neste momento.

A gente tem a instalação do Diego, já com algumas configurações, com a língua em português, que a gente configurou lá no setup do nosso projeto aqui, com o português do Brasil, com o horário da América, de São Paulo.

Legal. O que eu quero fazer agora é começar a desenvolver a minha API. Eu quero criar um APP de escola. Então, numa escola, nós temos alunos, nós temos cursos, e nós temos alunos matriculados em diferentes cursos.

Eu quero que a minha API seja capaz de criar um aluno, atualizar um aluno, atualizar um curso, criar um curso, remover um curso, criar uma matrícula de um aluno. Ou seja, muitas funcionalidades.

E, a primeira coisa que a gente tem que ter em mente é: uma API não renderiza uma página. Eu vou criar um APP chamado “escola”. Então eu vou apertar “Command+J” para abrir o meu terminal, e eu vou fechar aquela outra aba com o “Command+B”.

Meu servidor está rodando para exibir a tela. Eu vou parar o meu servidor. Eu vou criar aqui com o Phyton o “manager.py”. “Start APP”, que eu vou chamar de escola. Observa que vai aparecer o ícone da escola.

Dou um enter. Ele criou a “Escola”. Eu vou aqui em “views.py”, que faz o controle das requisições que estão vindo, e o que a gente vai fazer. Observe que o Django, quando a gente instala, ele já vem com essas palavras rápidas do Django com um import do Render. Ou seja, para a gente renderizar uma página.

Não é o que a gente quer. A gente quer que, quando chegar uma requisição para uma determinada URL, a gente quer renderizar um Json. E como é que a gente faz isso? Primeira coisa. Eu vou colocar aqui, do Django mesmo, do pacote HTTP, eu quero importar o “json.response”.

Legal? Aqui eu vou criar uma função. Essa função, vou chamar de “alunos”. Legal? O primeiro parâmetro que a gente vai receber, assim como a gente renderizava as nossas páginas também, vai ser o request.

Legal? A primeira coisa que a gente vai fazer lembrar é lembrar dos nossos cursos anteriores de Django. A gente tinha alguns cenários. Observa que quando a gente queria pegar os dados de uma determinada receita, a gente utilizava o método Get, e quando a gente queria criar uma receita, a gente utilizava o método post.

O que eu quero fazer agora? Eu vou verificar se o método que vai chegar para essa requisição de alunos é o método Get. Então, se o “request.method = = Get”, eu quero fazer alguma coisa.

E o que eu quero fazer? Eu quero criar um Json, só para a gente mostrar de exemplo. Então, eu vou criar “aluno”, e vou passar no formato de dicionário, vou colocar entre aspas simples. Vou colocar, por exemplo, um ID.

Eu estou criando um Json. Vou colocar “,” e vou passar outro valor. Vou colocar aqui o “nome:Guilherme”. Legal. Então, observa. Um Json, a gente vai ter um valor, um conteúdo, e esse conteúdo estará adicionado entre chaves, e cada conteúdo, a gente colocar “nome:” e o valor daquele conteúdo. Como um dicionário, mesmo.

Está bom? Eu vou colocar um return, e observe que nos nossos cursos anteriores, a gente colocava return, render, e colocava aqui uma página para renderizar uma página. Não é o que a gente quer. A gente quer que o retorno seja o quê? Seja esse arquivo que a gente criou, o “json.response”, passando o aluno que eu criei.

Vou salvar esse arquivo, e o que eu vou fazer? Para conseguir acessar o meu projeto, e consegui visualizar esse aluno, eu preciso cadastrar uma URL. Então, eu vou fazer assim: “localhost:8000/alunos”.

Então, sempre que eu digitar “localhost/alunos”, e der um enter, eu quero visualizar esse meu arquivo Json. Não quero renderizar uma página. Legal? Então, o que eu vou fazer? Acessando o setup, em URL, a gente tem todas as URL cadastradas na nossa aplicação.

A gente tem um setup da configuração, e eu vou remover essas linhas, a gente não utilizar essas linhas, agora. E o que eu quero fazer? Eu quero importar essa minha view de aluno, lá do meu código view de escola.

Então, “from: escola.views”, eu quero importar quem? Alunos. Legal. E vou criar aqui um PATH, um novo PATH, para que quando esse meu “localhost/alunos” aparecer, então eu vou colocar “alunos/”, e quando eu tiver uma requisição para este “alunos/”, eu quero que atenda lá do meu APP de escola, na minha views, eu quero que seja esse meu método de alunos.

Legal? Vou colocar uma “,”. Salvando. O que eu vou fazer? “Command+J” para eu subir o meu servidor, que eu tinha parado o servidor Python. “manage.py”, “runserver”.

Executando uma vez, ele subiu, ele fala que nós temos migrações pendentes ainda para esse projeto, porque a gente não fez nenhuma migração, não cadastrou o nosso modelo. Quando eu volto para a minha aplicação e atualizo, a gente o “ID 1” e o nome Guilherme.

E é justamente isso, essa é a ideia da API. Então, a gente quer disponibilizar, através de alguns endereços, alguns recursos, funcionalidades diferentes. Só que, o que eu quero fazer? Eu quero fazer algo muito maior. Eu quero que, baseado no endereço, e no método da requisição, eu quero criar um aluno, eu quero deletar um aluno, eu quero pegar.

A gente tem migrações pendentes no nosso modelo. Se a gente acessar o nosso modelo de escola, nosso modo de escola, a gente não tem nenhum arquivo, a gente não tem nada nesse arquivo, está vazio.

Ele fala quea só fez o import de modos, “from django.db”, mas a gente não tem nada. O que eu quero fazer? Eu quero criar um modelo, uma regra de negócios, quero integração com banco de dados também, mas eu quero que, no momento em que eu receber as requisições, retornar um arquivo Json.

E, para nos auxiliar nisso, já existe uma ferramenta chamada Django Rest Framework, que nós vamos instalar no próximo vídeo, que vai nos ajudar a fazer todo esse meio de campo entre os dados que a gente quer exibir, e como a gente cadastra as URL e as rotas principais da nossa aplicação. Isso o que a gente vai fazer no próximo vídeo.

Sobre o curso API com Django 3: Django Rest Framework

O curso API com Django 3: Django Rest Framework possui 115 minutos de vídeos, em um total de 40 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:

Aprenda Python acessando integralmente esse e outros cursos, comece hoje!

Plus

Desconto 25%
  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$85 R$63,75
à vista R$1.020 R$765
Matricule-se

Pro

Desconto 25%
  • Acesso a TODOS os cursos da plataforma

    Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.

  • Alura Challenges

    Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.

  • Alura Cases

    Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.

  • Certificado

    Emitimos certificados para atestar que você finalizou nossos cursos e formações.

  • Alura Língua (incluindo curso Inglês para Devs)

    Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.

12X
R$120 R$90
à vista R$1.440 R$1.080
Matricule-se
Conheça os Planos para Empresas

Acesso completo
durante 1 ano

Estude 24h/dia
onde e quando quiser

Novos cursos
todas as semanas