Développement Golang : implémentation d'une interface API basée sur GraphQL
Introduction :
Dans le développement de logiciels d'aujourd'hui, il est très important de créer des interfaces API flexibles, efficaces et évolutives. En tant que langage de requête et environnement d'exécution émergents, GraphQL offre un moyen plus flexible, intuitif et efficace de définir et d'interroger les interfaces API. Cet article expliquera comment utiliser Golang pour développer des interfaces API basées sur GraphQL et fournira des exemples de code correspondants.
1. Qu'est-ce que GraphQL ?
GraphQL est un langage de requête et un runtime développés par Facebook. Elle est différente des API RESTful traditionnelles. GraphQL permet au client de définir avec précision les structures de données et les champs requis, et renvoie uniquement les données dont le client a besoin, évitant ainsi les problèmes de récupération excessive ou de requêtes inefficaces dans les interfaces API traditionnelles. GraphQL prend également en charge plusieurs requêtes et la combinaison de plusieurs sources de données, ce qui offre aux développeurs front-end plus de flexibilité lors de l'interrogation de données sans nécessiter plusieurs requêtes au backend.
2. Golang et GraphQL
Golang est un langage permettant de développer des applications backend efficaces, évolutives et puissantes. En utilisant Golang pour développer des interfaces API basées sur GraphQL, nous pouvons tirer pleinement parti des performances de concurrence et de l'évolutivité de Golang, et obtenir une requête et un traitement de données efficaces.
3. Mettre en place un environnement de développement
Avant de commencer le développement, nous devons installer plusieurs bibliothèques nécessaires pour prendre en charge le développement GraphQL.
Dans cet article, nous choisissons d'utiliser la bibliothèque github.com/graphql-go/graphql pour implémenter l'interface API basée sur GraphQL.
Tout d'abord, ouvrez le terminal et utilisez la commande suivante pour installer la bibliothèque :
allez chercher github.com/graphql-go/graphql
4. Implémentez l'interface API de GraphQL
Ci-dessous, nous montrerons comment l'utiliser via un exemple simple Golang pour implémenter l'interface API basée sur GraphQL.
Nous supposons que nous construisons un site de blog et que nous devons implémenter une interface API pour interroger le titre, l'auteur et le texte du blog.
type Blog struct { ID graphql.ID Title string Author string Body string } var ( blogs []*Blog root *graphql.Object schema *graphql.Schema ) func init() { root = graphql.NewObject(graphql.ObjectConfig{ Name: "Query", Fields: graphql.Fields{ "blog": &graphql.Field{ Type: graphql.NewList(blogType), Resolve: func(p graphql.ResolveParams) (interface{}, error) { return blogs, nil }, }, }, }) schema, _ = graphql.NewSchema(graphql.SchemaConfig{ Query: root, }) }
Nous créons un gestionnaire HTTP pour gérer les requêtes GraphQL et utilisons la fonction Execute
de la bibliothèque graphql-go pour exécuter des requêtes GraphQL.
func GraphqlHandler(w http.ResponseWriter, r *http.Request) { result := graphql.Do(graphql.Params{ Schema: *schema, RequestString: r.URL.Query().Get("query"), }) if len(result.Errors) > 0 { log.Printf("execution failed: %v", result.Errors) http.Error(w, result.Errors[0].Message, http.StatusInternalServerError) return } json.NewEncoder(w).Encode(result) }
func main() { http.HandleFunc("/graphql", GraphqlHandler) log.Fatal(http.ListenAndServe(":8080", nil)) }
5. Testez l'interface API de GraphQL
Après avoir démarré le serveur HTTP, nous pouvons utiliser des outils (tels que Postman) pour tester l'interface API de GraphQL.
Envoyez une requête POST à http://localhost:8080/graphql, définissez l'en-tête de la requête Content-Type sur application/json et le corps de la requête est l'exemple de requête suivant :
{ "query": "{ blog { title author body } }" }
Le serveur renverra les résultats de la requête correspondants , et renvoie uniquement ce qui est requis dans le champ de demande.
6. Résumé
Cet article présente comment utiliser Golang pour développer une interface API basée sur GraphQL et fournit des exemples de code correspondants. En utilisant Golang et GraphQL, nous pouvons créer rapidement et de manière flexible des interfaces API efficaces et mieux répondre aux besoins des clients. J'espère que cet article pourra vous aider à comprendre et à appliquer le développement GraphQL !
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!