Maison> développement back-end> Golang> le corps du texte

Serveur API de service Web en Go

PHPz
Libérer: 2024-07-23 13:36:31
original
989 Les gens l'ont consulté

Web Service Api Server in Go

Dans ce chapitre, nous présenterons la programmation Web Go et Json pour créer un service Web API avec des types de données de réponse sous la forme d'une API.

  1. API de création WEB Préparez d’abord quelques exemples de données
package main import "encoding/json" import "net/http" import "fmt" type student struct { ID string Name string Grade int } var data = []student{ student{"E001", "ethan", 21}, student{"W001", "wick", 22}, student{"B001", "bourne", 23}, student{"B002", "bond", 23}, }
Copier après la connexion

La structure étudiant ci-dessus est utilisée comme exemple de type d'élément de tranche de données, stocké dans la variable de données.
Ensuite, créez une fonction user() pour gérer le point de terminaison /users. Dans cette fonction il y a un processus de détection du type de requête via la propriété r.Method(), pour savoir si le type de requête est Post ou Get ou autre chose.

func users(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") if r.Method == "GET" { var result, err = json.Marshal(data) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Write(result) return } http.Error(w, "", http.StatusBadRequest) }
Copier après la connexion

Si la requête est un GET (récupérer des données), alors les données sont codées en JSON
utilisé comme réponse.
L'instruction w.Header().Set("Content-Type", "application/json") est utilisée pour
déterminer le type de réponse, à savoir JSON. Tandis que r.Write()
utilisé pour enregistrer des données en réponse.
Sinon, si la demande n'est pas valide, la réponse est définie comme erreur en utilisant
Fonction http.Error().
Configurez également un gestionnaire pour le point de terminaison /user. La différence entre ce point de terminaison et
/users ci-dessus est :
Le point de terminaison /users renvoie tous les exemples de données existants (tableau).
Le point de terminaison /user renvoie une seule donnée, extraite des données
échantillon en fonction de son identifiant. À ce point final, le client doit envoyer
également les informations d'identification des données recherchées

func user(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "application/json") if r.Method == "GET" { var id = r.FormValue("id") var result []byte var err error for _, each := range data { if each.ID == id { result, err = json.Marshal(each) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } w.Write(result) return } } http.Error(w, "User not found", http.StatusNotFound) return } http.Error(w, "", http.StatusBadRequest) }
Copier après la connexion

La méthode r.FormValue() est utilisée pour récupérer les données du formulaire envoyées depuis
client, dans ce contexte les données mentionnées sont ID.
En utilisant cet identifiant, les données pertinentes sont recherchées. Si c'est le cas, alors
renvoyé en réponse. Si ce n'est pas le cas, erreur 400, mauvaise demande
est revenu avec le message Utilisateur introuvable.
Enfin, implémentez les deux gestionnaires ci-dessus.

func main() { http.HandleFunc("/users", users) http.HandleFunc("/user", user) fmt.Println("starting web server at http://localhost:8080/") http.ListenAndServe(":8080", nil) }
Copier après la connexion

Exécutez le programme, maintenant le serveur Web est actif et les données peuvent être consommées.

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!

source:dev.to
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!