GraphQL est un système de type de requête API puissant et un système de type d'exécution qui permet aux clients de demander avec précision les données requises et de renvoyer les résultats plus efficacement. Dans cet article, nous présenterons en détail comment implémenter les fonctionnalités de requête de base de données à l'aide de GraphQL dans le framework ThinkPhp6.
Avant de commencer, vous devez installer des composants liés à GraphQL via Composer:
<span class="fun">Le compositeur nécessite un bundle Overblog / GraphQL</span>
Une fois l'installation terminée, créez le fichier graphql.php dans le répertoire de configuration, ajoutez le contenu de configuration suivant et définissez le mode par défaut et les champs de requête:
return [
'default_schema' => 'default',
'schemas' => [
'default' => [
'query' => [
'fields' => [
'hello' => [
'type' => 'String',
'resolve' => function () {
return 'Hello, GraphQL!';
}
]
]
]
]
]
];
La configuration ci-dessus définit un champ de requête Hello simple qui renvoie une chaîne fixe.
Ensuite, créez un contrôleur GraphQL.PHP dans le répertoire APP / Controller pour recevoir et traiter la demande de requête GraphQL du client:
namespace app\controller;
use Overblog\GraphQLBundle\Definition\Resolver\ResolverInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class GraphQL
{
public function index(Request $request, ResolverInterface $resolver)
{
$query = $request->request->get('query');
$variables = $request->request->get('variables');
$result = $resolver->resolve($query, $variables);
return new Response(json_encode($result));
}
}
Le contrôleur obtient la requête GraphQL de la demande, appelle Resolver pour l'analyse et renvoie le résultat du format JSON.
Pour que les demandes du client accédent correctement à l'interface GraphQL, vous devez ajouter la configuration de routage dans config / rotes.php:
use think\facade\Route;
Route::rule('graphql', 'controller/GraphQL/index');
Cette configuration transfère toutes les demandes du chemin / graphQL vers la méthode d'index du contrôleur GraphQL.
Après avoir terminé les étapes ci-dessus, vous pouvez accéder à http: // localhost / graphQL via votre navigateur pour les tests. Dans l'entrée de l'éditeur de requête:
{
hello
}
Après avoir exécuté la requête, le résultat de retour doit être:
{
"data": {
"hello": "Hello, GraphQL!"
}
}
Cela montre que l'intégration de base de GraphQL dans ThinkPhp6 a réussi.
Cet article présente en détail comment intégrer GraphQL dans le framework ThinkPhp6 pour réaliser une interface de requête de base de données flexible et efficace. Un exemple de requête GraphQL de base est terminé via l'installation des composants, la configuration, l'écriture de contrôleur et les paramètres de routage. GraphQL peut renvoyer avec précision les données requises par le client, améliorant les performances et l'évolutivité de l'API. J'espère que cet article peut aider les développeurs à démarrer rapidement avec la combinaison de ThinkPhp6 et GraphQL.