REST API com o Django

REST API com o Django

Ao criar uma API REST com Django, você aprenderá como criar modelos de dados, visualizações, URLs e serializadores, bem como configuração de banco de dados e gerenciamento de solicitações HTTP. Você também aprenderá como usar ORMs (Object Relational Mapping) para trabalhar com bancos de dados em Python, bem como adicionar segurança à sua API REST usando ferramentas de autenticação e autorização em Django.

Por fim, você aprenderá mais sobre como proteger sua API contra ataques como XSS (Cross-site Scripting) e CSRF (Cross-site Request Forgery).


Por que aprender Django e Django REST Framework?

O que é Django?

Django é um framework de código aberto escrito em Python. Conhecendo o básico de Python e tendo conhecimentos básicos de HTML, CSS e JavaScript, você pode criar aplicações web com Django.

O que é o Django REST Framework?

É uma extensão Django que permite construir aplicativos web RESTful API (Application Programming Interface) de maneira fácil e rápida. O DRF fornece uma ampla gama de ferramentas e funções para criar, documentar e testar APIs, facilitando sua integração com outras aplicações e serviços.

Criar o APP com o Django

Estrutura do projeto

  • Project
  • APP

    Son independientes entre sí.

Etapa 1: Configuramos o ambiente

Primeiro, certificamo-nos de que temos Python e Node instalados no sistema.

Para instalar o Django, faremos isso com pip:

pip install Django

Etapa 2: Criar um novo projeto do Django

Abra um terminal e execute o seguinte comando para criar o projeto:

django-admin startproject tienda_virtual

Etapa 3:  Navegue até o diretório do projeto

Insira o seguinte:

cd tienda_virtual

Dentro do projeto que você acabou de gerar, o comando a seguir criará uma aplicação chamada virtual_store com a estrutura de um projeto Django básico.

python manage.py startapp api

Isso criará um diretório chamado api dentro do projeto.

Vamos até a pasta criada onde o projeto será hospedado e geramos nosso ambiente virtual com o seguinte comando.

python3 -m venv .venv

Ativamos o ambiente virtual:

source .venv/bin/activate

O ambiente virtual é usado para instalar as dependências do projeto. Com isso evitamos que dependências sejam instaladas globalmente em nosso computador. Podemos ter ambientes diferentes para projetos diferentes.

Apresentamos o aplicativo:

python3 manage.py runserver


Etapa 4: Definir os modelos

No arquivo api/models.py definimos os modelos que representarão os dados da sua loja virtual. Por exemplo, você poderia ter modelos para Produto e Carrinho de Compras.


Ao modificar modelos no Django, você precisa realizar migrações para refletir essas alterações no banco de dados. Migrações são arquivos que descrevem alterações na estrutura do banco de dados e ajudam a manter a consistência entre os modelos do Django e o banco de dados subjacente.

Para executar as migrações, siga estas etapas:

  • Abra um terminal e navegue até o diretório do seu projeto. Execute o seguinte comando:

python manage.py makemigrations

Com isso as migrações serão formadas.

Este comando verificará alterações em seus modelos e criará os arquivos de migração correspondentes no diretório api/migrations.

  • Depois que as migrações forem geradas, você deverá aplicá-las ao banco de dados. Execute o seguinte comando:

python manage.py migrate

Isso executará todas as migrações pendentes e atualizará o banco de dados de acordo com as alterações feitas nos seus modelos.

É importante observar que toda vez que você fizer alterações em seus modelos, deverá repetir essas etapas para criar e aplicar as migrações correspondentes.

Se quiser verificar o status atual das migrações, você pode usar o seguinte comando:

python manage.py showmigrations

Este comando exibirá uma lista de migrações e destacará aquelas que foram aplicadas.

Etapa 5: Configurar o banco de dados

Abrimos o arquivo virtual_store/settings.py e configuramos o banco de dados de acordo com sua preferência. Neste caso usaremos SQLite para uma configuração rápida:


Etapa 6: “gerar” as vistas e rotas

No arquivo api/views.py, definimos as visualizações que tratarão as solicitações e respostas da API.


A seguir, no arquivo virtual_store/urls.py, defina as rotas para suas visualizações:

Etapa 7: Configure o arquivo dos serializadores

Crie um arquivo chamado serializers.py no diretório api para definir serializadores, responsáveis ​​por serializar e desserializar objetos Django em formatos compatíveis com API.

Etapa 8: Iniciar o servidor de desenvolvimento

Execute o seguinte comando:

python manage.py runserver

Isso iniciará o servidor em http://localhost:8000/.

Você pode testar a API acessando http://localhost:8000/productos/ no seu navegador ou usando ferramentas como cURL ou Postman.

Agora você tem uma API REST básica para uma loja virtual. Você pode enviar solicitações HTTP para rotas definidas para criar produtos, obter produtos, receber informações do carrinho e adicionar produtos ao carrinho. Lembre-se que este é apenas um exemplo básico e você pode ampliá-lo e personalizá-lo de acordo com a necessidade do seu projeto.

No entanto, um projeto completo pode variar dependendo dos seus requisitos e dos recursos adicionais que você deseja implementar. Abaixo irei fornecer algumas áreas que você pode considerar para concluir seu projeto:

  1. Autenticação e autorização: Se você deseja adicionar um sistema de autenticação para usuários, você pode usar o Django REST Framework (DRF) para implementar autenticação baseada em token, JWT ou outras estratégias de autenticação. Você também pode definir permissões e funções para restringir o acesso a determinadas rotas ou recursos.
  2. Pagamentos e remessas: Se sua loja online envolve processamento de pagamento e remessa, você pode integrar serviços de pagamento online, como Stripe ou PayPal, bem como serviços de remessa para calcular taxas e gerar etiquetas de remessa.
  3. Imagens e arquivos anexos: Se precisar lidar com imagens de produtos ou outros anexos, você pode usar bibliotecas como Django Storages, Amazon S3 ou Google Cloud.
  4. Teste e tratamento de erros: É importante implementar testes unitários e de integração para garantir o correto funcionamento da sua API. Além disso, você deve considerar o tratamento adequado de erros e exceções para fornecer respostas claras e consistentes em caso de falhas.


Espero que este artigo te ajude muito em seus projetos com Django.

Até a próxima!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.