Maison >développement back-end >Golang >Utiliser GraphQL pour le développement d'API dans Beego

Utiliser GraphQL pour le développement d'API dans Beego

WBOY
WBOYoriginal
2023-06-23 11:36:00929parcourir

Développement d'API avec GraphQL dans Beego

GraphQL est un langage de requête API moderne développé par Facebook qui offre un moyen plus efficace et flexible de créer des API. Différent de l'API RESTful traditionnelle, GraphQL permet au client de définir les données dont il a besoin, et le serveur renvoie uniquement les données demandées par le client, réduisant ainsi la transmission de données inutiles.

Beego est un framework web open source écrit en langage Go. Il fournit une série d'outils et de bibliothèques pour développer rapidement des applications web hautes performances. L'ORM et le moteur de modèles intégrés de Beego le rendent très pratique et efficace lors du développement d'applications Web.

Dans cet article, nous présenterons comment utiliser GraphQL pour le développement d'API dans Beego.

  1. Installer GraphQL-go
    Tout d'abord, nous devons installer GraphQL-go (une bibliothèque de serveur GraphQL implémentée en langage Go).

Installez en utilisant :

allez sur github.com/graphql-go/graphql
allez sur github.com/graphql-go/handler

  1. Créez un schéma GraphQL
    Lorsque vous utilisez GraphQL dans Beego, nous devons définir un schéma est utilisé pour décrire la structure des données. Le schéma se compose de types, de propriétés et de méthodes.

Ce qui suit est une définition simple du type d'utilisateur :

var userType = graphql.NewObject(
  graphql.ObjectConfig{
    Name: "User",
    Fields: graphql.Fields{
      "id": &graphql.Field{
        Type: graphql.NewNonNull(graphql.Int),
      },
      "name": &graphql.Field{
        Type: graphql.String,
      },
      "email": &graphql.Field{
        Type: graphql.String,
      },
    },
  },
)

Le code ci-dessus définit un type d'utilisateur et contient trois attributs : identifiant, nom et e-mail. Parmi eux, l'attribut id est un type entier non vide et les attributs name et email sont des types chaîne.

Nous pouvons également définir une méthode de requête contenant plusieurs utilisateurs :

var rootQuery = graphql.NewObject(
  graphql.ObjectConfig{
    Name: "Query",
    Fields: graphql.Fields{
      "users": &graphql.Field{
        Type: graphql.NewList(userType),
        Resolve: func(p graphql.ResolveParams) (interface{}, error) {
          return getUsers()
        },
      },
    },
  },
)

func getUsers() ([]User, error) {
  // 获取用户数据
}

Le code ci-dessus définit une méthode de requête nommée utilisateurs, qui renverra une liste contenant plusieurs utilisateurs. Dans la méthode Resolve, nous appellerons la méthode getUsers pour obtenir les données utilisateur et les renvoyer au client. Étant donné que GraphQL-go fournit la fonction d'analyse automatique des paramètres Graphql, nous n'avons pas besoin d'obtenir manuellement les paramètres de la requête.

  1. Créer un gestionnaire GraphQL
    Ensuite, nous devons lier le schéma GraphQL avec Beego et créer le gestionnaire GraphQL.

Nous pouvons utiliser le gestionnaire HTTP personnalisé fourni par GraphQL-go pour le traitement. Voici un exemple simple :

h := handler.New(&handler.Config{
    Schema:   &graphql.Schema{Query: rootQuery},
    Pretty:   true,
    GraphiQL: true,
})

Le code ci-dessus crée un gestionnaire GraphQL h qui utilise le schéma que nous avons défini (rootQuery), avec GraphiQL (Web IDE pour GraphQL) et les fonctionnalités de formatage de code activées.

  1. Enregistrer le gestionnaire GraphQL
    Enfin, nous enregistrons le gestionnaire GraphQL que nous venons de créer dans Beego.

Voici l'exemple de code :

beego.Handler("/graphql", h)

Le code ci-dessus lie le gestionnaire GraphQL h à la route "/graphql". Maintenant, visitez "/graphql" dans votre navigateur pour ouvrir GraphiQL et commencer à tester l'API.

Résumé
Dans cet article, nous avons présenté comment utiliser GraphQL dans Beego pour le développement d'API. Tout d'abord, nous avons installé GraphQL-go et créé un schéma GraphQL, puis utilisé le gestionnaire HTTP personnalisé fourni par GraphQL-go pour gérer la requête, et enfin enregistré le gestionnaire GraphQL dans la route Beego.

La flexibilité et l'efficacité de GraphQL en font l'une des méthodes de développement d'API les plus populaires aujourd'hui. En combinant les hautes performances de Beego et les fonctionnalités faciles à utiliser, nous pouvons créer rapidement des applications Web avec d'excellentes performances.

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:
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