Maison interface Web Questions et réponses frontales Comment le front-end appelle-t-il l'API GraphQL ?

Comment le front-end appelle-t-il l'API GraphQL ?

Nov 27, 2019 am 11:28 AM
前端

Comment le front-end appelle-t-il l'API GraphQL ?

GraphQL est à la fois un langage de requête pour les API et un environnement d'exécution pour interroger vos données. GraphQL fournit une description complète et facile à comprendre des données de votre API, permettant au client d'obtenir exactement les données dont il a besoin sans aucune redondance.

GraphQL propose des implémentations côté serveur pour différents langages pour aider les développeurs à créer GraphQL Server. (Apprentissage recommandé : Vidéo front-end)

Et gq-loader est un plug-in webpack. Vous pouvez le considérer comme une implémentation côté client pour les projets front-end. Le but est d'aider au développement front-end. Il permet aux étudiants d'appeler plus facilement l'API GraphQL, ce qui permet aux développeurs front-end d'utiliser plus facilement GraphQL aussi facilement que les modules js ordinaires. Il permet aux développeurs front-end d'importer .gql. et les fichiers .graphql dans les fichiers js via l'importation ou l'exigence, puis appelez directement.

Et il prend également en charge l'importation d'autres fichiers .gql, tels que des fragments, via la syntaxe #import.

#import fournit également deux alias, à savoir #require et #include. L'utilisation et le comportement de ces deux alias sont exactement les mêmes que #import.

Installer

npm install gq-loader --save-dev
Copier après la connexion

ou

yarn add gq-loader
Copier après la connexion

Utilisation de base

comme les autres Loader est le même. Tout d'abord, nous ajoutons la configuration de gq-loader dans webpack.config.js

{
  test: /\.(graphql|gql)$/,
  exclude: /node_modules/,
  use: {
    loader: 'gq-loader'
    options: {
      url: 'Graphql Server URL'
    }
  }
}
Copier après la connexion

Ensuite, nous pouvons importer le fichier .gql dans le fichier js et l'utiliser. un exemple, en supposant qu'il existe déjà un serveur Graphql fonctionnel, nous créons d'abord un getUser.gql

#import './fragment.gql' 
query MyQuery($name: String) {
  getUser(name: $name)
    ...userFields
  }
}
Copier après la connexion

qui peut interroger les utilisateurs. Comme vous pouvez le voir, nous référençons un autre fragment de fichier .gql via #import. dans ce fichier nous décrivons les informations de champ de l'utilisateur à retourner, afin que nous puissions les "réutiliser" à différents endroits. Nous créons également ce fichier

fragment userFields on User {
  name
  age
}
Copier après la connexion

D'accord, nous pouvons importer directement getUser.gql dans le fichier. js et utilisez-le pour interroger les utilisateurs. Cela n'a jamais été aussi simple. Jetons un coup d'œil

import getUser from './getUser.gql';
import React from 'react';
import ReactDOM from 'react-dom';
async function query() {
  const user = await getUser({ name: 'bob' });
  console.log('user', user);
}
function App() {
  return <button onClick={query}>click</button>;
}
ReactDOM.render(<App />, document.getElementById(&#39;root&#39;));
Copier après la connexion

Lors de l'appel de getUser, nous pouvons transmettre des variables à GraphQL en tant que paramètres de fonction.

Demande personnalisée

Le gq-loader par défaut vous aidera à compléter la requête graphql, mais dans certains scénarios, vous souhaiterez peut-être contrôler toutes les requêtes vous-même, si nécessaire, nous pouvons également "personnaliser" la requête via l'attribut request. Jetez un œil à l'exemple. Vous devez d'abord modifier légèrement la configuration du chargeur

{
  test: /\.(graphql|gql)$/,
  exclude: /node_modules/,
  use: {
    loader: &#39;gq-loader&#39;
    options: {
      url: &#39;Graphql Server URL&#39;,
      //指定自动请求模块路径
      request: require.resolve(&#39;your_request_module_path&#39;);
    }
  }
}
Copier après la connexion

Remplissez le chemin du module de requête personnalisé dans your_request_module_path et gq-loader. chargera et utilisera automatiquement le module Request correspondant, le module n'a besoin que de modifier une "fonction de requête", voir l'exemple personnalisé suivant

onst $ = require(&#39;jquery&#39;);
//url 是要请求的 GraphQL 服务地址
//data 是待发送的数据
//options 是自定义选项
module.exports = function(url, data, options){
  //如果有需要还可以处理 options
  return $.post(url, data);
};
Copier après la connexion

Parmi eux, options est le "deuxième paramètre de la fonction" après avoir importé le Fichier .gql. Par exemple, cela peut être comme ceci Passez le paramètre d'options

import getUser from &#39;./getUser.gql&#39;;
async function query() {
  const options = {...};
  const user = await getUser({ name: &#39;bob&#39; }, options);
  console.log(&#39;user&#39;, user);
}
Copier après la connexion

Notez que quelle que soit la valeur configurée pour les extensions de gq-loader, l'extension ne peut pas être omise lors de l'importation dans js. l'option s'applique uniquement au fichier .gql et à l'importation d'autres fichiers .gql

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

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.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

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 grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Un article pour parler du contrôle de la mémoire dans Node Un article pour parler du contrôle de la mémoire dans Node Apr 26, 2023 pm 05:37 PM

Le service Node construit sur une base non bloquante et piloté par les événements présente l'avantage d'une faible consommation de mémoire et est très adapté à la gestion de requêtes réseau massives. Dans le contexte de demandes massives, les questions liées au « contrôle de la mémoire » doivent être prises en compte. 1. Le mécanisme de récupération de place du V8 et les limitations de mémoire Js sont contrôlés par la machine de récupération de place

Découvrez comment écrire des tests unitaires dans Vue3 Découvrez comment écrire des tests unitaires dans Vue3 Apr 25, 2023 pm 07:41 PM

Vue.js est devenu aujourd'hui un framework très populaire dans le développement front-end. À mesure que Vue.js continue d'évoluer, les tests unitaires deviennent de plus en plus importants. Aujourd'hui, nous allons explorer comment écrire des tests unitaires dans Vue.js 3 et fournir quelques bonnes pratiques ainsi que des problèmes et solutions courants.

Parlons en profondeur du module File dans Node Parlons en profondeur du module File dans Node Apr 24, 2023 pm 05:49 PM

Le module de fichiers est une encapsulation des opérations de fichiers sous-jacentes, telles que l'ajout de lecture/écriture/ouverture/fermeture/suppression de fichiers, etc. La plus grande caractéristique du module de fichiers est que toutes les méthodes fournissent deux versions de **synchrone** et ** asynchrone**, with Les méthodes avec le suffixe sync sont toutes des méthodes de synchronisation, et celles qui n'en ont pas sont toutes des méthodes hétérogènes.

Comment résoudre les problèmes cross-domaines ? Une brève analyse des solutions courantes Comment résoudre les problèmes cross-domaines ? Une brève analyse des solutions courantes Apr 25, 2023 pm 07:57 PM

Le cross-domaine est un scénario souvent rencontré en développement, et c'est également une question souvent abordée lors des entretiens. La maîtrise des solutions interdomaines communes et des principes qui les sous-tendent peut non seulement améliorer notre efficacité de développement, mais également mieux performer lors des entretiens.

PHP et Vue : une combinaison parfaite d'outils de développement front-end PHP et Vue : une combinaison parfaite d'outils de développement front-end Mar 16, 2024 pm 12:09 PM

PHP et Vue : une combinaison parfaite d'outils de développement front-end À l'ère actuelle de développement rapide d'Internet, le développement front-end est devenu de plus en plus important. Alors que les utilisateurs ont des exigences de plus en plus élevées en matière d’expérience des sites Web et des applications, les développeurs front-end doivent utiliser des outils plus efficaces et plus flexibles pour créer des interfaces réactives et interactives. En tant que deux technologies importantes dans le domaine du développement front-end, PHP et Vue.js peuvent être considérés comme une arme parfaite lorsqu'ils sont associés. Cet article explorera la combinaison de PHP et Vue, ainsi que des exemples de code détaillés pour aider les lecteurs à mieux comprendre et appliquer ces deux éléments.

En savoir plus sur les tampons dans Node En savoir plus sur les tampons dans Node Apr 25, 2023 pm 07:49 PM

Au début, JS ne fonctionnait que du côté du navigateur. Il était facile de traiter les chaînes codées en Unicode, mais il était difficile de traiter les chaînes binaires et non codées en Unicode. Et le binaire est le format de données le plus bas du package ordinateur, vidéo/audio/programme/réseau.

Comment utiliser le langage Go pour le développement front-end ? Comment utiliser le langage Go pour le développement front-end ? Jun 10, 2023 pm 05:00 PM

Avec le développement de la technologie Internet, le développement front-end est devenu de plus en plus important. La popularité des appareils mobiles, en particulier, nécessite une technologie de développement frontal efficace, stable, sûre et facile à entretenir. En tant que langage de programmation en développement rapide, le langage Go est utilisé par de plus en plus de développeurs. Alors, est-il possible d’utiliser le langage Go pour le développement front-end ? Ensuite, cet article expliquera en détail comment utiliser le langage Go pour le développement front-end. Voyons d’abord pourquoi le langage Go est utilisé pour le développement front-end. Beaucoup de gens pensent que le langage Go est un

Questions fréquemment posées par les enquêteurs front-end Questions fréquemment posées par les enquêteurs front-end Mar 19, 2024 pm 02:24 PM

Lors des entretiens de développement front-end, les questions courantes couvrent un large éventail de sujets, notamment les bases HTML/CSS, les bases JavaScript, les frameworks et les bibliothèques, l'expérience du projet, les algorithmes et les structures de données, l'optimisation des performances, les requêtes inter-domaines, l'ingénierie front-end, les modèles de conception et les nouvelles technologies et tendances. Les questions de l'intervieweur sont conçues pour évaluer les compétences techniques du candidat, son expérience en matière de projet et sa compréhension des tendances du secteur. Par conséquent, les candidats doivent être parfaitement préparés dans ces domaines pour démontrer leurs capacités et leur expertise.

See all articles