国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Installation
Configuration
控制器
模式
查詢
Résumé
Maison cadre php PensezPHP Utiliser GraphQL dans ThinkPHP6

Utiliser GraphQL dans ThinkPHP6

Jun 20, 2023 pm 11:25 PM
thinkphp utiliser graphql

Avec la popularité de la séparation front-end et back-end, les API RESTful traditionnelles ne peuvent plus répondre aux besoins de l'Internet moderne. Le problème est que l'API de chaque ressource doit être con?ue séparément, et chaque requête ne renvoie qu'une structure fixe, ce qui conduit à un grand nombre de requêtes et de données redondantes, et le programme devient très encombrant, ce qui n'est pas propice au développement. et l'entretien.

L'émergence de GraphQL résout ce problème. Il s'agit d'un nouveau type de langage de requête et d'exécution d'API qui peut réduire efficacement la quantité de transmission de données réseau et le nombre de requêtes. Contrairement aux API RESTful, GraphQL traite les données en définissant des types et des schémas, ce qui permet aux clients de demander exactement les données et les types dont ils ont besoin, améliorant ainsi l'efficacité des données et la vitesse de réponse.

Dans le développement PHP, ThinkPHP6 est un framework Web populaire qui fournit des fonctionnalités puissantes telles que la programmation orientée objet, le routage, les modèles et les opérations de base de données. Dans cet article, nous présenterons comment utiliser GraphQL dans ThinkPHP6.

Installation

Avant de commencer, nous devons nous assurer que PHP et Composer sont installés et connaissent la structure de base du projet ThinkPHP6. Ensuite, nous devons introduire GraphQL dans le projet?:

composer require overblog/graphql-bundle:^0.12.17

Configuration

Après avoir introduit GraphQL, nous devons ajouter certains paramètres nécessaires dans le fichier de configuration ThinkPHP6. Ouvrez le fichier config/app.php, recherchez le tableau providers et ajoutez le GraphQL ServiceProvider?: config/app.php 文件,找到 providers 數(shù)組,添加 GraphQL ServiceProvider:

'providers' => [
    // ...
    OverblogGraphQLBundleGraphQLBundleServiceProvider::class,
]

接下來,我們需要定義 GraphQL 的路由,它將指向我們的 GraphQL 查詢控制器。這里我們可以使用一個(gè)獨(dú)立的路由文件 route/graphql.php,它返回一個(gè)路由列表:

<?php

use thinkacadeRoute;

Route::any('/graphql', 'graphql/index')->name('graphql');

其中,graphql/index 指向我們的 GraphQL 查詢控制器。

控制器

現(xiàn)在我們需要?jiǎng)?chuàng)建 GraphQL 控制器,它將負(fù)責(zé)處理所有 GraphQL 查詢和突變。我們創(chuàng)建一個(gè) appcontrollerGraphql.php 文件,定義一個(gè)空類 Graphql,并繼承 OverblogGraphQLBundleControllerController

<?php

namespace appcontroller;

use OverblogGraphQLBundleControllerController;

class Graphql extends Controller
{
    //
}

在這個(gè)類中,我們需要定義一些方法來處理 GraphQL 查詢和突變。在 PHP 中,我們可以使用注解來定義這些方法的操作。因此,我們需要添加注解支持。這里使用 doctrine/annotations 庫,使用 Composer 安裝:

composer require doctrine/annotations:^1.13.1

現(xiàn)在我們需要在 ThinkPHP6 中配置注解。打開 config/app.php 文件,編輯 providers 數(shù)組,添加 DoctrineCommonAnnotationsAnnotationReader 類:

'providers' => [
    // ...
    DoctrineCommonAnnotationsAnnotationReader::class,
]

在控制器中,我們可以定義一個(gè) @Route 注解來指定 GraphQL 查詢的路由地址,以及一個(gè) @ParamConverter 注解來自動(dòng)轉(zhuǎn)換查詢參數(shù)等信息。例如,我們定義一個(gè)簡(jiǎn)單的查詢方法:

use OverblogGraphQLBundleAnnotation as GQL;

/**
 * @GQLType(type="MySchema")
 * @GQLQueryList()
 */
public function index()
{
    return [];
}

其中,@Type 注解指定了返回值類型,@QueryList 注解指定這個(gè)方法是一個(gè)查詢方法。這里返回空數(shù)組,方便測(cè)試。接下來,我們需要定義圖形查詢模式。

模式

在模式中,我們定義了 GraphQL 的圖形方案。我們使用 GraphQL 類創(chuàng)建它,并使用 @Object, @Route@Field 注解定義類型、方法和字段。例如,我們假設(shè)我們要查詢一個(gè)用戶列表,定義一個(gè) UserQuery 類:

use GraphQLTypeDefinitionObjectType;
use OverblogGraphQLBundleAnnotation as GQL;

/**
 * @GQLType(type="query")
 */
class UserQuery extends ObjectType
{
    /**
     * @GQLField(type="[User]", name="users")
     */
    protected function getUsers()
    {
        return // return data from database or service;
    }
}

這里我們使用 GraphQLTypeDefinitionObjectType 類作為 UserQuery 的基類,它定義了查詢的字段和返回類型。我們添加了一個(gè) getUsers 方法,它將返回一個(gè)用戶列表。我們還添加了一個(gè) @Field 注解,它指定了這個(gè)字段的類型和名稱。在這個(gè)例子中,我們返回的是一個(gè)列表的用戶類型。

這里,我們使用 type="[User]" 指定了用戶類型,它與定義用戶類型的方式有關(guān)。我們還可以寫一個(gè) User 類型,具體定義方式可以參考 GitHub 上的 overblog/graphql-bundle 文檔。

查詢

現(xiàn)在我們已經(jīng)定義了控制器和模式,我們可以通過瀏覽器訪問我們的 GraphQL Endpoint,我們的請(qǐng)求地址是 http://project.com/graphql?query={users{id,name}}。這里我們使用 POST 請(qǐng)求,傳遞查詢參數(shù):

{
  "query": "{users{id,name}}"
}

這個(gè)請(qǐng)求將返回一個(gè) JSON 格式的數(shù)據(jù),其中包含了 ID 和名稱等信息。它的格式類似于這樣:

{
    "data": {
        "users": [
            {
                "id": 1,
                "name": "Alice"
            },
            {
                "id": 2,
                "name": "Bob"
            }
        ]
    }
}

我們還可以使用變量來傳遞參數(shù)。例如,我們想要查詢用戶 ID 為 1 的詳細(xì)信息:

{
  "query": "query GetUser($id:Int){user(id:$id){id,name,email}}",
  "variables": {"id":1}
}

這將返回用戶 ID、名稱和電子郵件地址等詳細(xì)信息。這里我們使用了一個(gè) $ 符號(hào)來傳遞參數(shù),它指定了我們要查詢用戶的 ID。我們使用 variablesrrreee

Ensuite, nous devons définir le Route GraphQL, qui pointera vers notre contr?leur de requêtes GraphQL. Ici nous pouvons utiliser un fichier de routage indépendant route/graphql.php, qui renvoie une liste de routes?: #????#rrreee#????#Parmi eux, des points graphql/index à notre contr?leur de requêtes GraphQL. #????##????#Controller#????##????#Maintenant, nous devons créer le contr?leur GraphQL, qui sera responsable de la gestion de toutes les requêtes et mutations GraphQL. Nous créons un fichier appcontrollerGraphql.php, définissons une classe vide Graphql et héritons de OverblogGraphQLBundleControllerController?: #????#rrreee#????#In this Dans la classe, nous devons définir certaines méthodes pour gérer les requêtes et les mutations GraphQL. En PHP, on peut utiliser des annotations pour définir les opérations de ces méthodes. Par conséquent, nous devons ajouter la prise en charge des annotations. La bibliothèque doctrine/annotations est utilisée ici et installée à l'aide de Composer?: #????#rrreee#????#Maintenant, nous devons configurer les annotations dans ThinkPHP6. Ouvrez le fichier config/app.php, modifiez le tableau providers et ajoutez la classe DoctrineCommonAnnotationsAnnotationReader?: #????#rrreee#????# dans le contr?leur, nous pouvons définir une annotation @Route pour spécifier l'adresse de routage de la requête GraphQL, et une annotation @ParamConverter pour convertir automatiquement les paramètres de requête et d'autres informations. Par exemple, nous définissons une méthode de requête simple?: #????#rrreee#????# Parmi elles, l'annotation @Type spécifie le type de valeur de retour, et la @QueryList L'annotation spécifie que cette méthode est une méthode de requête. Un tableau vide est renvoyé ici pour faciliter les tests. Ensuite, nous devons définir le modèle de requête graphique. #????##????# Schéma #????##????# Dans le schéma, nous définissons le schéma graphique de GraphQL. Nous le créons en utilisant la classe GraphQL et définissons les types et méthodes en utilisant les annotations @Object, @Route et @Field. et les champs. Par exemple, nous supposons que nous voulons interroger une liste d'utilisateurs et définir une classe UserQuery?: #????#rrreee#????#Ici, nous utilisons la classe GraphQLTypeDefinitionObjectType comme classe de base de UserQuery, elle définit les champs et le type de retour de la requête. Nous avons ajouté une méthode getUsers qui renverra une liste d'utilisateurs. Nous avons également ajouté une annotation @Field, qui spécifie le type et le nom de ce champ. Dans cet exemple, nous renvoyons une liste de types d'utilisateurs. #????##????#Ici, nous utilisons type="[User]" pour spécifier le type d'utilisateur, qui est lié à la fa?on dont le type d'utilisateur est défini. Nous pouvons également écrire un type User Pour des méthodes de définition spécifiques, veuillez vous référer au document overblog/graphql-bundle sur GitHub. #????##????#Query#????##????#Maintenant que nous avons défini le contr?leur et le schéma, nous pouvons accéder à notre point de terminaison GraphQL via le navigateur, notre adresse de requête est le projet http://. com/graphql?query={users{id,name}}. Ici, nous utilisons une requête POST pour transmettre les paramètres de la requête?: #????#rrreee#????#Cette requête renverra des données au format JSON, qui contiennent des informations telles que l'ID et le nom. Son format est similaire à celui-ci?: #????#rrreee#????#On peut également utiliser des variables pour passer des paramètres. Par exemple, nous souhaitons interroger les détails de l'ID utilisateur 1?: #????#rrreee#????#Cela renverra des détails tels que l'ID utilisateur, le nom et l'adresse e-mail. Ici, nous utilisons un symbole $ pour transmettre les paramètres, qui spécifient l'ID de l'utilisateur que nous souhaitons interroger. Nous utilisons le mot-clé variables pour définir des variables réelles afin de fournir des paramètres de requête plus précis. #????#

Résumé

Dans cet article, nous avons présenté comment utiliser GraphQL dans le framework ThinkPHP6. Tout d'abord, nous avons présenté le contexte et les avantages de GraphQL, puis installé les packages nécessaires et configuré le routage. Ensuite, nous définissons un exemple de requête simple et utilisons des annotations pour définir son type et son fonctionnement. Enfin, nous avons présenté les variables et les méthodes de requête de GraphQL, démontrant comment utiliser GraphQL pour interroger et traiter des données. Dans le développement réel, nous pouvons personnaliser les types et les opérations GraphQL selon les besoins pour obtenir des comportements et des fonctions de requête plus complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Comment télécharger foobar2000 ? -Comment utiliser foobar2000 Mar 18, 2024 am 10:58 AM

foobar2000 est un logiciel qui peut écouter des ressources musicales à tout moment. Il vous offre toutes sortes de musique avec une qualité sonore sans perte. La version améliorée du lecteur de musique vous permet d'obtenir une expérience musicale plus complète et plus confortable. lire l'audio avancé sur l'ordinateur. L'appareil est transplanté sur le téléphone mobile pour offrir une expérience de lecture de musique plus pratique et efficace. La conception de l'interface est simple, claire et facile à utiliser. opérations pour démarrer rapidement. Il prend également en charge une variété de skins et de thèmes, personnalisez les paramètres en fonction de vos propres préférences et créez un lecteur de musique exclusif prenant en charge la lecture de plusieurs formats audio. Il prend également en charge la fonction de gain audio pour régler le volume. selon vos propres conditions auditives pour éviter les dommages auditifs causés par un volume excessif. Ensuite, laisse-moi t'aider

Quel logiciel est CrystalDiskmark ? -Comment utiliser crystaldiskmark ? Quel logiciel est CrystalDiskmark ? -Comment utiliser crystaldiskmark ? Mar 18, 2024 pm 02:58 PM

CrystalDiskMark est un petit outil de référence pour disques durs qui mesure rapidement les vitesses de lecture/écriture séquentielles et aléatoires. Ensuite, laissez l'éditeur vous présenter CrystalDiskMark et comment utiliser crystaldiskmark~ 1. Introduction à CrystalDiskMark CrystalDiskMark est un outil de test de performances de disque largement utilisé pour évaluer la vitesse et les performances de lecture et d'écriture des disques durs mécaniques et des disques SSD (SSD). ). Performances d’E/S aléatoires. Il s'agit d'une application Windows gratuite qui fournit une interface conviviale et divers modes de test pour évaluer différents aspects des performances du disque dur. Elle est largement utilisée dans les revues de matériel.

Comment utiliser l'application Baidu Netdisk Comment utiliser l'application Baidu Netdisk Mar 27, 2024 pm 06:46 PM

Le stockage cloud est devenu aujourd’hui un élément indispensable de notre vie quotidienne et de notre travail. En tant que l'un des principaux services de stockage cloud en Chine, Baidu Netdisk a gagné la faveur d'un grand nombre d'utilisateurs grace à ses puissantes fonctions de stockage, sa vitesse de transmission efficace et son expérience de fonctionnement pratique. Et que vous souhaitiez sauvegarder des fichiers importants, partager des informations, regarder des vidéos en ligne ou écouter de la musique, Baidu Cloud Disk peut répondre à vos besoins. Cependant, de nombreux utilisateurs peuvent ne pas comprendre l'utilisation spécifique de l'application Baidu Netdisk, ce didacticiel vous présentera donc en détail comment utiliser l'application Baidu Netdisk. Si vous êtes toujours confus, veuillez suivre cet article pour en savoir plus ! Comment utiliser Baidu Cloud Network Disk?: 1. Installation Tout d'abord, lors du téléchargement et de l'installation du logiciel Baidu Cloud, veuillez sélectionner l'option d'installation personnalisée.

Comment exécuter le projet thinkphp Comment exécuter le projet thinkphp Apr 09, 2024 pm 05:33 PM

Pour exécuter le projet ThinkPHP, vous devez?: installer Composer?; utiliser Composer pour créer le projet?; entrer dans le répertoire du projet et exécuter php bin/console serve?; visiter http://localhost:8000 pour afficher la page d'accueil.

Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Tutoriel BTCC : Comment lier et utiliser le portefeuille MetaMask sur l'échange BTCC ? Apr 26, 2024 am 09:40 AM

MetaMask (également appelé Little Fox Wallet en chinois) est un logiciel de portefeuille de cryptage gratuit et bien accueilli. Actuellement, BTCC prend en charge la liaison au portefeuille MetaMask. Après la liaison, vous pouvez utiliser le portefeuille MetaMask pour vous connecter rapidement, stocker de la valeur, acheter des pièces, etc., et vous pouvez également obtenir un bonus d'essai de 20 USDT pour la première liaison. Dans le didacticiel du portefeuille BTCCMetaMask, nous présenterons en détail comment enregistrer et utiliser MetaMask, ainsi que comment lier et utiliser le portefeuille Little Fox dans BTCC. Qu'est-ce que le portefeuille MetaMask ? Avec plus de 30 millions d’utilisateurs, MetaMask Little Fox Wallet est aujourd’hui l’un des portefeuilles de crypto-monnaie les plus populaires. Son utilisation est gratuite et peut être installée sur le réseau en tant qu'extension

Comment utiliser NetEase Mailbox Master Comment utiliser NetEase Mailbox Master Mar 27, 2024 pm 05:32 PM

NetEase Mailbox, en tant qu'adresse e-mail largement utilisée par les internautes chinois, a toujours gagné la confiance des utilisateurs grace à ses services stables et efficaces. NetEase Mailbox Master est un logiciel de messagerie spécialement créé pour les utilisateurs de téléphones mobiles. Il simplifie grandement le processus d'envoi et de réception d'e-mails et rend le traitement de nos e-mails plus pratique. Alors comment utiliser NetEase Mailbox Master, et quelles sont ses fonctions spécifiques Ci-dessous, l'éditeur de ce site vous donnera une introduction détaillée, en espérant vous aider ! Tout d’abord, vous pouvez rechercher et télécharger l’application NetEase Mailbox Master dans la boutique d’applications mobiles. Recherchez ??NetEase Mailbox Master?? dans l'App Store ou Baidu Mobile Assistant, puis suivez les instructions pour l'installer. Une fois le téléchargement et l'installation terminés, nous ouvrons le compte de messagerie NetEase et nous connectons. L'interface de connexion est la suivante

Il existe plusieurs versions de thinkphp Il existe plusieurs versions de thinkphp Apr 09, 2024 pm 06:09 PM

ThinkPHP dispose de plusieurs versions con?ues pour différentes versions de PHP. Les versions majeures incluent 3.2, 5.0, 5.1 et 6.0, tandis que les versions mineures sont utilisées pour corriger les bogues et fournir de nouvelles fonctionnalités. La dernière version stable est ThinkPHP 6.0.16. Lorsque vous choisissez une version, tenez compte de la version PHP, des exigences en matière de fonctionnalités et du support de la communauté. Il est recommandé d'utiliser la dernière version stable pour de meilleures performances et une meilleure assistance.

Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

étapes pour exécuter ThinkPHP Framework localement?: Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un h?te virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

See all articles