Pular para o conteúdo
Ramos da Informática - Comunidade de Desenvolvedores

Torne-se um desenvolvedor FullStack: Pacote completo de formação desenvolvedor Frontend e Backend utilizando as linguagens de programação e frameworks mais procurados no mercado de trabalho. Mais informações, aqui. Faça o download do E-BookGuia Completo Para Se Tornar um(a) Desenvolvedor(a) Full-Stack, Começando do ZERO”.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

Engenheiro de Software, autor de livros sobe tecnologia e negócios. É mantenedor do site Ramos da Informática. Hobbies: investir em ações, natação e finanças.

admin

Todos os artigos deste autor

Django Rest Framework Quickstart

Chatbots com Whatsapp e Cielo integrados Nesse curso, eu vou te mostrar como o consumidor poder realizar um pagamento por dentro do aplicativo do WhatsApp, aonde o seu cliente vai entrar numa conversa como entraria numa conversa com qualquer pessoa ou com a sua empresa, navegar entre os produtos/serviços em menus simples enviados pelo chatbot, adicionar esses produtos/serviços no carrinho de compras, e num determinado ponto do chat, um link exclusivo é enviado para o cliente preencher os dados do cartão de crédito. No final, a análise é devolvida para o Whatsapp no qual a conversa foi iniciada. Inscreva-se.

Veremos aqui uma forma rápida de criar uma API REST com Django Rest Framework.

Este artigo foi atualizado em 14 de Fevereiro de 2018.

Este artigo está usando:

Python 3.5.2
Django 2.0.2
djangorestframework 3.7.7

Favor clonar o projeto do GitHub, favor ler o README para instalação.

Repare nas alterações das urls na nova versão do Django.

urls.py
from django.urls import include, path
from django.contrib import adminurlpatterns = [
path(, include(‘core.urls’)),
path(‘admin/’, admin.site.urls),
]

# core/urls.py
from django.urls import path
from core import viewsurlpatterns = [
path(‘persons/’, views.person_list),
path(‘persons/<int:pk>/’, views.person_detail),
]

Além disso, tivemos alterações significativas em settings.py.

Obs: Tem coisas que é melhor nem traduzir. 😉

0 – Quickstart
1 – Serialization
2 – Requests & Responses
3 – Class based views

Obs: se você não sabe Django sugiro que leia este tutorial antes.

Começando

$ python3 -m venv .venv
$ source env/bin/activate
$ mkdir drf-quickstart
$ cd drf-quickstart
$ pip install django djangorestframework
$ pip freeze > requirements.txt
$ django-admin.py startproject myproject . # tem um ponto ‘.’ aqui
$ python manage.py startapp core
$ python manage.py migrate
$ python manage.py createsuperuser –username=‘admin’ –email=

Veja o meu requirements.txt

dj-database-url==0.4.2
Django==2.0.2
django-extensions==1.9.9
django-filter==1.1.0
djangorestframework==3.7.7
drf-nested-routers==0.90.0
python-decouple==3.1

Editando settings.py

Abra o arquivo settings.py e em INSTALLED_APPS acrescente

INSTALLED_APPS = (

‘rest_framework’,
)REST_FRAMEWORK = {
‘DEFAULT_PERMISSION_CLASSES’: (‘rest_framework.permissions.IsAdminUser’,),
‘PAGE_SIZE’: 10
}

Editando serializers.py

Crie o arquivo

$ cd core/
$ touch serializers.py

Edite

from django.contrib.auth.models import User, Group
from rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):

class Meta:
model = User
fields = (‘url’, ‘username’, ’email’, ‘groups’)

class GroupSerializer(serializers.HyperlinkedModelSerializer):

class Meta:
model = Group
fields = (‘url’, ‘name’)

Editando views.py

from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from core.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):
“””
API endpoint that allows users to be viewed or edited.
“””
queryset = User.objects.all().order_by(‘-date_joined’)
serializer_class = UserSerializer

class GroupViewSet(viewsets.ModelViewSet):
“””
API endpoint that allows groups to be viewed or edited.
“””
queryset = Group.objects.all()
serializer_class = GroupSerializer

Editando urls.py

from django.conf.urls import url, include
from rest_framework import routers
from core import viewsrouter = routers.DefaultRouter()
router.register(r‘users’, views.UserViewSet)
router.register(r‘groups’, views.GroupViewSet)

urlpatterns = [
url(r‘^’, include(router.urls)),
url(r‘^api-auth/’, include(‘rest_framework.urls’, namespace=‘rest_framework’))
]

Rodando a API

Abra duas abas no terminal, numa rode a aplicação.

$ python manage.py runserver

Na outra teste a API.

curl -H ‘Accept: application/json; indent=4’ -u admin:admin http://127.0.0.1:8000/users/

onde admin:admin equivale a username:password.

Experimente com httpie

http -a admin:admin http://127.0.0.1:8000/users/

Atenção: se você receber erro 301, muito provavelmente é porque você esqueceu da barra / no final da url.

Veja o código no GitHub.

Haverá continuação …

Este artigo foi importado automaticamente por fazer parte do Planetário Dev. Quer fazer parte deste HUB de conteúdos? Faça parte do Planetário e veja as vantagens.

Não tem site ou blog? Seja um autor do site e ainda pode ser remunerado.

Leia também:

Facebook
LinkedIn
Twitter
Pinterest
Reddit
Telegram
WhatsApp
Email
Print

Relacionados

Deixe uma resposta