Entendendo Django REST Framework

Review Django

  • Request de um browser chega no Django;
  • Consulta o urls.py base do projeto para encontrar o que será executado;
  • Consulta o urls.py da app (no caso) para encontrar a view que será executada;
  • Encontra a view dentro da app, que busca as informações no model;
  • Renderiza o template;
  • Retorna o template renderizado para o usuário.

Interlúdio: REST

REST: Recursos

Elementos são chamados "recursos" e fazem parte da URL.

  • Recurso usuários: /user;
  • Recurso orders: /order;
  • Recurso produtos: /product

REST: Recursos

Recursos específicos são indicados também na URL depois da URL base do recurso, apontados por sua chave principal.

  • Usuário 1: /user/1/
  • Produto ws-1243: /product/ws-1243/

REST: Recursos

Recursos podem estar aninhados.

  • /user/1/order: Todos os pedidos do usuário 1.
  • /user/1/order/2: Pedido 2 do usuário 1.

REST: Verbos/Ações

Ações sobre os recursos são indicadas pelo verbo HTTP:

  • GET: Recupera recursos;
  • POST: Cria recursos;
  • PUT: Altera (update) recursos;
  • DELETE: Apaga recursos;
  • PATCH: Altera recursos.

REST: Verbos

  Base recurso Recurso específico
GET Todos os elementos do recurso Dados do recurso específico

REST: Verbos

  Base recurso Recurso específico
POST Cria um recurso novo Não usado, mas poderia criar um recurso com a cahve indicada

REST: Verbos

  Base recurso Recurso específico
PUT Não usado Ataliza o registro inteiro do recurso

REST: Verbos

  Base recurso Recurso específico
DELETE Não usado, mas poderia apagar todos os recursos Apaga o recurso

REST: Verbos

  Base recurso Recurso específico
PATCH Não usado Atualiza campos específicos do recurso

REST: Exemplos

  • GET /user: Retorna todos os usuários do sistema.
  • POST /order: Cria um novo pedido.
  • DELETE /user/1/order/2: Apaga o pedido 2 do usuário 1.

De volta ao REST Framework