Maison >développement back-end >Golang >Utiliser GraphQL pour le développement d'API dans Beego
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.
Installez en utilisant :
allez sur github.com/graphql-go/graphql
allez sur github.com/graphql-go/handler
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.
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.
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!