Dino Geek essaye de t'aider

Comment mettre en œuvre l'API GraphQL avec Django ?


GraphQL est une alternative à REST pour le développement des API. Il permet une flexibilité accrue en permettant aux clients de spécifier exactement ce dont ils ont besoin, de réduire la quantité de données transférées par le réseau et d’améliorer la productivité du développeur.

Pour mettre en œuvre l’API GraphQL avec Django, nous devrons d’abord installer certains paquets supplémentaires. Le paquet principal dont nous aurons besoin est Graphene, une bibliothèque Python pour construire des API GraphQL dans un style Django et Relay. Nous devrons également installer le paquet Django Filter pour ajouter le support des requêtes de filtrage. Vous pouvez installer ces paquets avec pip :

```
pip install graphene-django
pip install django-filter
```

Après l’installation, vous devrez ajouter ‘graphene_django’ à la liste INSTALLED_APPS dans vos settings.py :

```
INSTALLED_APPS = [ … ‘django.contrib.staticfiles’, … ‘graphene_django’,
]
``` et également ajouter l’URL pour GraphQL à votre urls.py :

\`\`\` from django.urls import path from graphene\_django.views import GraphQLView

urlpatterns = [ … path(‘graphql/’, GraphQLView.as\_view(graphiql=True)), …
]
```
Le prochain pas consiste à définir vos schemas GraphQL. Chaque modèle Django que vous voulez exposer via GraphQL nécessite un Type correspondant dans le schema. Vous pouvez créer ces types en utilisant le ObjectType de Graphene :

```
import graphene
from graphene\_django.types import DjangoObjectType
from .models import MyModel

class MyModelType(DjangoObjectType): class Meta: model = MyModel
```

Ensuite vous pouvez définir un schema global pour votre API en définissant une Query et, si besoin, une Mutation. La Query vous permet de définir les requêtes GET pour votre API, et la Mutation les requêtes POST, PUT et DELETE.

L’extrait de code suivant montre une Query simple pour obtenir les détails d’un élément de MyModel en utilisant son ID :

```
class Query(graphene.ObjectType): mymodel = graphene.Field(MyModelType, id=graphene.Int())

def resolve\_mymodel(self, info, \*\*kwargs): id = kwargs.get(‘id’) if id is not None: return MyModel.objects.get(pk=id) return None ```

Ensuite, vous définissez votre schema global dans schemas.py:

```
schema = graphene.Schema(query=Query)
```

Et ajoutez-le à vos settings.py:

```
GRAPHENE = { ‘SCHEMA’: ‘myapp.schemas.schema‘
}
\`\`\`

Et voilà, vous avez maintenant une API GraphQL fonctionnelle avec Django.

Références :
1. Graphene-Django documentation: https://docs.graphene-python.org/projects/django/en/latest/
2. Official Django documentation: https://docs.djangoproject.com/
3. Blog article “How to use GraphQL with Django”: https://www.valentinog.com/blog/drf/


Générez simplement des articles pour optimiser votre SEO
Générez simplement des articles pour optimiser votre SEO





DinoGeek propose des articles simples sur des technologies complexes

Vous souhaitez être cité dans cet article ? Rien de plus simple, contactez-nous à dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Nom de Domaine | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Mentions Légales / Conditions Générales d'Utilisation