Recherche de site Web

Créer une API REST avec Django REST Framework


En utilisant cette bibliothèque Django, vous pouvez créer une API REST de base en un rien de temps.

Si vous avez utilisé un appareil numérique pour envoyer et recevoir des informations, vous avez utilisé une API. Les développeurs créent des API pour permettre aux utilisateurs d'interagir avec les données de leurs applications.

La création d'une API REST est un moyen pratique de partager des informations. Les API REST ont défini des normes réglementant le partage de données entre appareils. Pour comprendre le fonctionnement des API REST, vous pouvez en créer une à partir de zéro.

Vous pouvez utiliser le framework Django REST pour créer une API REST et l'utiliser pour afficher les données d'une base de données.

Utiliser Django avec une API REST

Vous pouvez utiliser une API REST pour récupérer des données structurées via HTTP. Comme de nombreux langages et frameworks, Django vous permet de créer votre propre API et d'en utiliser d'autres.

Vous devriez également avoir les éléments suivants préinstallés :

  1. La dernière version de python.
  2. La dernière version de pip.
  3. Pipenv (bien que vous puissiez utiliser venv à la place si vous le souhaitez.)
  4. La dernière version de Django.

Une fois que vous avez installé tous les logiciels essentiels, vous êtes prêt à commencer.

1. Installez le framework Django REST

Le framework Django REST est une boîte à outils puissante que vous pouvez utiliser pour créer et configurer des API Web. Ses fonctionnalités personnalisables en font un choix populaire pour créer des API REST.

Vous pouvez installer le framework Django REST avec la commande suivante :

pipenv install djangorestframework

2. Créez une application Django

Les instructions suivantes expliquent comment créer une application alimentaire pour recueillir les noms et les descriptions des aliments populaires kenyans. L'API récupérera les requêtes d'une base de données pour permettre aux utilisateurs d'interagir avec ces données.

Les applications Django sont équipées d'une base de données SQLite , vous n'avez donc pas besoin d'installer une autre base de données.

Pour créer une application Django, créez d'abord un projet appelé food avec la commande suivante :

django-admin startproject food 

Ensuite, créez une application Django appelée kenyanfood :

django-admin startapp kenyanfood

3. Enregistrez les paramètres du projet d'application

Enregistrez l'application kenyanfood dans les paramètres du projet sous le tableau APPLICATIONS INSTALLÉES. Si vous sautez cette étape, Django ne reconnaîtra pas l'application. Enregistrez également le framework Django REST dans les mêmes paramètres :

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

4. Enregistrez les URL des applications

Enregistrez les URL des applications kenyanfood dans le fichier urls.py du projet, comme illustré ci-dessous :

from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('kenyanfood.urls')),
]

5. Créez une vue pour l'API

Créez une vue factice dans le fichier views.py de l'application, afin que l'application ne génère pas d'erreurs. Tout d’abord, importez l’objet Response et @apiview le décorateur depuis le framework Django REST.

Response permet de renvoyer des données stérilisées au format JSON tandis que @apiview affiche l'API.

from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.decorators import api_view
 
# Create your views here.
@api_view(['GET'])
def getFood(request):
    return Response()

6. Créez un chemin URL pour l'application

Créez un chemin d'URL pour la vue API que vous avez créée. Ce point de terminaison affiche les données kenyanfood .

from django.urls import path
from . import views
from django.conf import settings
 
urlpatterns = [
    path('', views.getFood),
    path('post/', views.postFood),
]

7. Créez un modèle pour l'application

La classe modèle de l'application s'appelle Food. Elle devrait ressembler à ceci :

from django.db import models
 
# Create your models here.
class Food(models.Model):
    name = models.CharField(max_length=200)
    description = models.CharField(max_length=500)

Enregistrez le modèle dans le fichier admin.py de l'application comme indiqué ci-dessous :

from django.contrib import admin
from .models import Food
 
# Register your models here.
admin.site.register(Food)

8. Effectuer des migrations

Ensuite, migrez l'application pour créer des tables dans la base de données SQLite. Vous pouvez le faire en utilisant la commande suivante :

python manage.py makemigrations kenyanfood

Ensuite, appliquez ces migrations en exécutant cette commande :

python manage.py migrate

Une migration réussie ressemblera à ceci :

Les migrations réussies signifient que la base de données a créé des tables pour l'application kenyanfood .

9. Ajouter des données à la base de données

Utilisez l'interface graphique Django admin pour saisir des données dans la base de données. Django admin dispose d'une excellente interface pour visualiser et gérer les données de votre application.

Vous pouvez également utiliser le shell python sur la ligne de commande pour saisir manuellement les données dans la base de données. Dans ce guide, vous utiliserez l'interface d'administration de Django.

Utilisez la commande suivante pour configurer l'administrateur Django :

python manage.py createsuperuser

Lorsque vous y êtes invité, saisissez votre nom d'utilisateur, votre adresse e-mail et votre mot de passe. Vous pouvez ensuite ouvrir la page d'administration en utilisant le lien ci-dessous :

http://127.0.0.1:8000/admin/

Vous verrez la page de connexion :

Une fois connecté, vous verrez l'interface d'administration de Django avec le modèle Groupes et Utilisateurs. Ce sont tous deux destinés à l’authentification ; le modèle Food se trouve dans la section ci-dessous.

Vous pouvez ajouter et supprimer des éléments Food de la base de données à partir de la page d'administration. Ajoutez quelques spécialités kenyanes, telles que l'Ugali, le Pilau et le Chai, à la base de données.

Maintenant que la base de données contient des données, créez l'API

10. Sérialiser le modèle

Les sérialiseurs convertissent les modèles Django complexes en objets JSON, facilitant ainsi la lecture des données sur l'API. La sérialisation rend les données plus lisibles sur l'API.

Créez un nouveau fichier dans l'application appelé serializer.py.

from rest_framework import serializers
from .models import Food
 
class FoodSerializer(serializers.ModelSerializer):
    class Meta:
        model=Food
        fields=('name','description')

Vous importez le module serializers à partir du package rest_framework et créez une classe FoodSerializer qui hérite de la classe ModelSerializer.

Ensuite, spécifiez le modèle Food que vous souhaitez sérialiser et les champs que vous souhaitez ajouter à l'API.

11. Mettre à jour la vue

Ensuite, mettez à jour la vue API avec les modèles sérialiseur et Food .

Tout d’abord, définissez une méthode GET pour récupérer toutes les données de la base de données avec la fonction Food.Objects.all(). Sérialisez ensuite les données et renvoyez-les en réponse au format JSON .

from django.shortcuts import render
from rest_framework.response import Response
from rest_framework.decorators import api_view
from .models import Food
from .serializer import FoodSerializer
 
# Create your views here.
@api_view(['GET'])
def getFood(request):
    food = Food.objects.all()
    serializer = FoodSerializer(food, many=True)
    return Response(serializer.data)

Ensuite, accédez au lien URL du serveur :

https://127.0.0.1:8000/

Vous verrez l'API afficher les données de la base de données :

Félicitations, vous avez créé une API REST !

12. Ajouter des données avec la méthode POST

Testez si vous pouvez utiliser l'API REST pour ajouter des données à la base de données.

Tout d’abord, définissez une méthode POST dans la vue.

@api_view(['POST'])
def postFood(request):
    serializer = FoodSerializer(data=request.data)
    if serializer.is_valid():
        serializer.save()
    return Response(serializer.data)

Ensuite, ajoutez un chemin dans l'application urls.py pour créer un point de terminaison pour la fonctionnalité POST de l'API.

urlpatterns = [
    path('',views.getFood),
    path('post/',views.postFood),
]

Ensuite, accédez à cette URL :

https://127.0.0.1:8000/post

Vous verrez le point de terminaison POST . Ajoutez des données à la base de données au format JSON dans la section Contenu et cliquez sur le bouton POST. Par exemple, ajoutez un nouvel aliment avec cette structure :

{ "name":"Maziwa mala", "description":"Sour milk" }

Vous verrez les données affichées en rouge au format JSON .

Maintenant, si vous revenez au GET endpoint http://127.0.0.1:8000/, vous verrez la nourriture « Maziwa mala » . et sa description ajoutée.

Vous disposez désormais d'une API REST capable d'afficher et d'ajouter des éléments à l'application. Que diriez-vous d'expérimenter d'autres méthodes CRUD ? Travailler avec les méthodes UPDATE et DELETE augmentera les fonctionnalités de votre API REST.

Comment créer une API REST avec Django

Vous pouvez désormais créer une API REST à l'aide de Django. Tout d’abord, créez une application avec un modèle, sérialisez les données et créez une fonction d’affichage. Ensuite, incluez les points de terminaison d'URL pour visualiser les données au format JSON.

Créer des API REST avec le framework Django REST est un moyen pratique de partager des données et d'offrir à vos utilisateurs une excellente expérience client.

Articles connexes: