Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Space Devs Live - Criando uma REST API com Django

Camila Maia
January 30, 2020
250

Space Devs Live - Criando uma REST API com Django

Como montar um REST API com Django e Django REST Framework.

https://www.youtube.com/watch?v=_NoPfmPerKQ

Camila Maia

January 30, 2020
Tweet

More Decks by Camila Maia

Transcript

  1. @cmaiacd Público Já se sente confortável desenvolvendo em Python Possui

    ou não conhecimento em Django Não possui domínio do Django REST Framework Deseja construir APIs
  2. @cmaiacd Application Programming Interface “É um conjunto de funções estabelecidos

    por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.” É um conjunto de funções estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software mas apenas usar seus serviços.
  3. @cmaiacd API: Uma interface de comunicação entre dois programas API

    Documentação API Google Maps Site de Hotel Empresa de Logística Site de delivery $$$$ Aplicativo de Carro Particular
  4. @cmaiacd API Serviço Para utilizar esse serviço, você precisa entender

    como ele funciona Documentação Menu de um restaurante
  5. @cmaiacd Por que? E o quê tem a ver com

    a economia? • API é um produto • Fácil de integrar • Viabilização de parcerias “As APIs do Twitter têm facilmente dez vezes mais tráfego do que o site do Twitter.” APIs THE BUILDING BLOCKS OF THE APP ECONOMY APIs FOR DUMMIES - IBM
  6. @cmaiacd Mais Exemplos • Twitter API • Facebook API •

    Youtube API ◦ github.com/youtube/api-samples • github.com/toddmotto/public-apis • blog.rapidapi.com/most-popular-apis/
  7. @cmaiacd Métodos HTTP GET: Retorna recursos do servidor. Não altera

    o servidor POST / PUT: Criar e editar recursos no servidor DELETE: Deletar recursos do servidor
  8. @cmaiacd REST APIs • Design de APIs para web •

    É um estilo de arquitetura • Série de padrões / restrições para construir uma API Sua API não é RESTful: Entenda por quê. 10 Best Practices for Better RESTful API Restful API Designing Guidelines
  9. @cmaiacd • JSON • XML • … JSON • JavaScript

    Object Notation • Formato utilizado pelo padrão REST • Modelo de dados • O formato JSON é sintaticamente idêntico ao código para criar objetos JavaScript. Especificação Oficial JSON em Python Representação dos Dados
  10. @cmaiacd Django: Web Framework para Python DRF permite que uma

    aplicação Django se comporte com uma REST API. Django REST Framework é um kit de ferramentas poderoso e flexível para criar Web APIS. Django REST Framework (DRF) Por que Django / DRF? • Rápido de fazer uma aplicação • Possui várias ferramentas • Versátil • Escalável Links: • Quick Start • Tutorial • Web browsable API
  11. @cmaiacd $ mkdir <project_name> $ cd <project_name> $ python -m

    venv env $ source env/bin/activate $ pip install django $ pip install djangorestframework Criando um Projeto
  12. @cmaiacd Criando um Projeto $ django-admin startproject <project_name> . $

    cd <project_name> $ django-admin startapp <app_name> $ cd .. $ python manage.py migrate
  13. @cmaiacd Arquitetura: Model, Serializer e View (MSV?) View: Descreve qual

    dado será apresentado Serializer: Descreve como o dado será apresentado (JSON) Model: Descreve as entidades da lógica do seu problema Arquitetura
  14. @cmaiacd View Descreve qual dados serão apresentados. Uma View é

    simplesmente uma função Python que recebe uma request e retorna uma response. Essa resposta pode ser um conteúdo HTML de uma página Web, um redirecionamento, um erro 404, um documento XML, uma imagem... A visualização em si contém qualquer lógica arbitrária necessária para retornar essa resposta. Como estamos trabalhando com REST APIs, o conteúdo da resposta HTTP deve ser em JSON.
  15. @cmaiacd Migrações Passo 1: Mudar o seu modelo (arquivo models.py)

    Passo 2: Rodar $ python manage.py makemigrations para gerar os arquivos de migração Passo 3: Rodar $ python manage.py migrate para aplicar as mudanças no banco de dados Django Shell $ python manage.py shell
  16. @cmaiacd Serialização API JSON Objetos Python do programa 1 Objetos

    da aplicação Obj => JSON Obj <= JSON JSON => Obj JSON <= Obj Programa 2 (Aplicação) Programa 1 Serialização Serialização Desserialização Desserialização
  17. @cmaiacd Class Based Views (CBV) Class Based Views fornecem uma

    maneira alternativa de implementar Views com objetos Python, ao invés de funções. Não substitui as function based views Reutilizar código através de: - Heranças - Mixins Evita fazer um branch de if’s
  18. @cmaiacd Class Based Views (CBV) Classy Django REST Framework IDE

    que possa navegar nas classes do Django e do DRF Generics, Mixins, ViewSets...
  19. @cmaiacd Models e Forms • Null -- Banco de Dados

    ◦ Default is False • Blank -- Forms ◦ Default is False