¿Cómo crear una API básica usando Django Rest Framework?

Django REST Framework es un contenedor sobre Django Framework predeterminado, básicamente utilizado para crear API de varios tipos. Hay tres etapas antes de crear una API a través del marco REST, convertir los datos de un modelo a formato JSON/XML (serialización), representar estos datos en la vista, crear una URL para mapear al conjunto de vistas.
Este artículo gira en torno a cómo crear una API básica utilizando Django REST Framework. Se supone que está familiarizado con los conceptos básicos de Django: tutorial de Django . Además, instalación de Django REST Framework . Suponiendo que haya creado un proyecto llamado geeksforgeeks con Django, iniciemos Django REST Framework.
 

Pasos

Agregue rest_framework a INSTALLED_APPS

Para inicializar REST Framework en su proyecto, vaya a settings.py y en INSTALLED_APPS agregue ‘rest_framework’ en la parte inferior. 
 

Python3

# Application definition
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

Crear una aplicación y un modelo

Ahora, creemos una aplicación usando el comando, 
 

python manage.py startapp apis

Ya se habría registrado una carpeta con el nombre apis. agreguemos esta aplicación a INSTALLED_APPS y urls.py también. 
En, configuración.py, 
 

Python3

# Application definition
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'apis',
]

Ahora, agregue apis urls en urls.py. En geeksforgeeks.urls.py
 

Python3

from django.contrib import admin
# include necessary libraries
from django.urls import path, include
 
urlpatterns = [
    path('admin/', admin.site.urls),
    # add apis urls
    path('', include("apis.urls"))
]

Crear un modelo 
Para demostrar, crear y usar una API, creemos un modelo llamado «GeeksModel». En apis/models.py 
 

Python3

from django.db import models
 
class GeeksModel(models.Model):
    title = models.CharField(max_length = 200)
    description = models.TextField()
 
    def __str__(self):
        return self.title

ahora que nuestra aplicación está lista, vamos a serializar los datos y crear vistas a partir de ellos.
 

Publicación por entregas

Los serializadores permiten convertir datos complejos, como conjuntos de consultas e instancias de modelos, en tipos de datos nativos de Python que luego se pueden representar fácilmente en JSON, XML u otros tipos de contenido. Los serializadores también brindan deserialización, lo que permite que los datos analizados se vuelvan a convertir en tipos complejos, después de validar primero los datos entrantes. Empecemos a crear un serializador, en el archivo apis/serializers.py, 
 

Python3

# import serializer from rest_framework
from rest_framework import serializers
 
# import model from models.py
from .models import GeeksModel
 
# Create a model serializer
class GeeksSerializer(serializers.HyperlinkedModelSerializer):
    # specify model and fields
    class Meta:
        model = GeeksModel
        fields = ('title', 'description')

Creación de un conjunto de vistas

Para procesar datos en la interfaz y manejar las requests del usuario, necesitamos crear una vista. En Django REST Framework, los llamamos conjuntos de vistas, así que vamos a crear una vista en apis/views.py, 
 

Python3

# import viewsets
from rest_framework import viewsets
 
# import local data
from .serializers import GeeksSerializer
from .models import GeeksModel
 
# create a viewset
class GeeksViewSet(viewsets.ModelViewSet):
    # define queryset
    queryset = GeeksModel.objects.all()
     
    # specify serializer to be used
    serializer_class = GeeksSerializer

Definir URL de API

Especifique la ruta URL de las API a las que se accederá, en apis/urls.py, 
 

Python3

# basic URL Configurations
from django.urls import include, path
# import routers
from rest_framework import routers
 
# import everything from views
from .views import *
 
# define the router
router = routers.DefaultRouter()
 
# define the router path and viewset to be used
router.register(r'geeks', GeeksViewSet)
 
# specify URL Path for rest_framework
urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls'))
]

Después de que todo esté listo con éxito, ejecutemos algunos comandos para activar el servidor. 
 

Ejecute el servidor y verifique la API

Ejecute los siguientes comandos para crear la base de datos y ejecutar el servidor, 
 

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Ahora visite http://127.0.0.1:8000/geeks/
 

Create-a-basic-API-with-Django-REST-Framework

Para comprobar el código del proyecto, haga clic aquí
 

Publicación traducida automáticamente

Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *