Maison  >  Article  >  développement back-end  >  Comment faire des requêtes API à l'aide de Golang

Comment faire des requêtes API à l'aide de Golang

PHPz
PHPzoriginal
2023-04-14 09:33:431181parcourir

Golang est un langage de programmation moderne, et il devient de plus en plus populaire dans le domaine des langages back-end. Ses avantages incluent un traitement simultané efficace, la sécurité de la mémoire et des mécanismes de récupération de place. Dans cet article, nous explorerons comment effectuer des requêtes API à l'aide de Golang.

Tout d’abord, nous devons commencer par installer Golang. Le package d'installation portable Golang peut être téléchargé sur le site officiel https://golang.org/dl/.

Une fois l'installation terminée, nous devons installer un client HTTP. Dans cet article, nous utiliserons le package « net/http » et le package « json ». Ces deux packages sont des bibliothèques standard fournies avec Golang, nous n'avons donc pas besoin de les installer.

Nous devons définir une structure pour stocker les données que nous demandons. Dans cet exemple, nous demanderons une API REST et obtiendrons une réponse JSON. Par conséquent, nous avons besoin d'une structure pour analyser le JSON et stocker la réponse.

Ensuite, nous devons créer un client HTTP. Dans Golang, nous utilisons le type "http.Client" pour créer des clients HTTP. Ce client nous permet de spécifier des délais d'attente et d'autres options.

Ensuite, nous devons définir une requête HTTP. Dans Golang, nous utilisons la fonction "http.NewRequest()" pour créer des requêtes HTTP. Cette fonction nous permet de spécifier le type de demande, l'URL, l'en-tête, le corps et d'autres paramètres.

Ensuite, nous devons envoyer une requête HTTP et obtenir la réponse. Dans Golang, nous utilisons la fonction "client.Do()" pour envoyer des requêtes HTTP. Cette fonction renverra une structure "http.Response", qui contient la réponse dont nous avons besoin et quelques métadonnées.

Enfin, nous devons analyser la réponse JSON. Dans Golang, nous utilisons la fonction "json.Unmarshal()" pour analyser la réponse JSON. En utilisant cette fonction, nous pouvons convertir les données JSON dans le type de structure que nous avons défini.

Pour résumer, il s'agit d'un framework API de requête Golang de base.

package main

import (
    "net/http"
    "encoding/json"
    "fmt"
    "time"
)

type ApiResponse struct {
    Data string `json:"data"`
}

func main() {
    client := &http.Client{
        Timeout: time.Second * 10,
    }

    req, err := http.NewRequest("GET", "https://api.example.com/data", nil)
    if err != nil {
        fmt.Println(err)
    }

    req.Header.Set("Content-Type", "application/json")
    req.Header.Set("Authorization", "Bearer my_token")

    resp, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
    }

    defer resp.Body.Close()

    var apiResponse ApiResponse
    err = json.NewDecoder(resp.Body).Decode(&apiResponse)
    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(apiResponse.Data)
}

Dans cet exemple, nous avons envoyé une requête HTTP GET à "https://api.example.com/data" et l'API renverra une réponse JSON. Nous avons d'abord créé un client HTTP, puis utilisé la méthode « http.NewRequest() » pour créer une requête HTTP utilisant des informations d'en-tête telles que « Content-Type » et « Authorization ». Enfin, nous utilisons "client.Do()" pour envoyer la requête et la méthode "json.Unmarshal()" pour analyser la réponse JSON.

Résumé :

Utiliser l'API de requête client HTTP dans Golang est très simple. Il nous suffit d'utiliser le package « net/http » et le package « json » dans la bibliothèque standard pour compléter la requête et analyser la réponse. Enfin, nous pouvons convertir la réponse de l'API en type de structure que nous définissons pour une utilisation dans notre programme.

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