Créez des API RESTful avec le framework Gin
Publié: 2022-09-02Avez-vous hâte de créer une API REST à l'aide du framework Gin ? Ensuite, vous devriez donner à ce blog une lecture approfondie. Grâce à des étapes simples, vous apprendrez à créer une API de base, après quoi vous pourrez entreprendre d'autres projets complexes. Et oui, vous pouvez travailler vous-même sans utiliser les services de développement Golang . Mais, avant de commencer, familiarisez-vous avec l'aspect théorique du cadre Gin.
- Première tâche à accomplir
- Vous devez d'abord créer un répertoire dans votre espace de travail go. Vous utiliserez l'invite de commande si vous utilisez un ordinateur Windows. Utilisez le terminal si vous utilisez macOS ou Linux comme système d'exploitation.
- J'utiliserai l'invite de commande dans ce scénario.
cd go-espace de travail
travail mkdir
travail de cd
code .
Au fur et à mesure que nous tapons code ., nous voyons les lancements de VS Code. Dans votre cas, il peut s'agir d'un IDE ou d'un éditeur différent.
- Démarrer avec le code VS
- La première chose que nous allons faire est de créer un fichier main.go. Suite à cela, nous devons télécharger le framework gin afin de créer les API REST.
- Nous devons maintenant créer un fichier go.mod. On tape :
go mod init golang.com/job
- Suite à la création du fichier go.mod, nous allons taper :
allez chercher github.com/gin-gonic/gin
Cela entraînera la création du fichier go.sum ainsi que le téléchargement de tous les packages nécessaires liés au framework gin.
- Commençons avec une API SIMple
- Nous écrivons juste le code
paquet principal
importer (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
fonction principale()
{s :=gin.Default()
s.GET (“”, func (c *gin.Context){
c.String(http.StatusOK, "Quel est le rôle du poste ?")
})
à Exécuter ("localhost : 8000")
}
- Comme vous pouvez le voir, nous avons importé tous les packages requis par l'application. On passe alors directement à la fonction main. Ce que nous faisons est de construire un module par défaut de middleware de récupération ou d'enregistrement pour Gin.
- Les paramètres par défaut sont inclus dans la variable "s". Et nous utiliserons cette variable pour faciliter le développement de l'API GET. Le premier argument que j'ai donné dans cet exemple est l'URL de l'API.
- L'URL de base spécifiée par w.Run("localhost:8000") sera utilisée pour héberger l'API sur localhost:8000. De plus, le premier argument indique en fait la route relative de l'API.
- La fonction de gestionnaire func (c *gin.Context) fait référence à la séquence de fonctions que vous pouvez donner.
- Le pointeur vers la variable *gin.Context sert d'argument à la fonction. Par conséquent, le "c" dans ce cas signifie le contexte.
- Le contexte doit renvoyer une valeur qui est soit c.String soit c.JSON. Ici, il y a deux critères en opération. L'état est indiqué par le premier argument, un entier simple (http.StatusOK). Nous pouvons l'utiliser car nous avons importé le package net/http.
- J'envoie simplement un exemple de chaîne après cela. C'est "Quel est le rôle du travail?"
- Exécutons le programme ci-dessus
Pour exécuter le programme, nous devons taper go run main.go.

- Comme vous pouvez le voir, il y a la présence d'une requête GET sur une URL vide. Il est également livré avec une fonction personnalisable. De plus, le fonctionnement du mode de libération du moteur est visible. Il existe un seul point de terminaison actif sur localhost 8000.
- Dans un navigateur Web, nous pouvons taper localhost:8000 pour voir :
- En attendant, vous pourrez voir l'instantané suivant dans le code VS

Qu'est-ce que ça veut dire? Eh bien, le framework gin joue ici un rôle énorme dans la surveillance du temps de réponse du code exécuté.
- Se concentrer sur l'API GET où le passage de paramètres est géré par l'URL
Le code qui suit suppose que l'API vous fournira une valeur, idéalement une chaîne, en réponse à l'URL.
s.GET("/:get", func (c *gin.Context){
var val = c.Param("getr")
c.JSON(http.StatusOK, gin.H{

"données de réponse": val,
})
})
//2e volet
- Nous pouvons fournir chaque nom de variable dans la requête GET en les séparant par deux-points. Tout ce qui est entré après l'URL de base sera donc considéré comme un "get".
- Pour déterminer la valeur du "get", nous devons définir le contexte de Param et le nom de la variable que nous avons mentionné. Val recevra le « get » de Gin et sera informé du résultat.
- Ensuite, nous voyons que je transfère un JSON qui contient la valeur.
Travaillez-vous sur quelque chose de complexe ? Dans ce cas, il serait préférable de faire appel aux services de développement de Golang au cas où vous tomberiez sur un problème et ne pourriez pas le résoudre.
- Exécutons le programme ci-dessus
- Encore une fois, nous devrons exécuter le programme en tapant go run main.go.
Si vous voyez un message 'tcp 127.0.0.1: 8000: bind:Only one use of each socket address (protocol/network address/port) isnormally.', alors vous devez effectuer une opération dans Command Prompt.
nidat-ano | findstr : 8000
Vérifiez la valeur de LISTENING (par exemple 7932), puis vous devez taper
taskkill / pid 7932 /F
Cela conduira à l'arrêt du processus pid.
- Sur le navigateur, nous effectuons les opérations suivantes :

La raison pour laquelle nous avons dû saisir une chaîne après avoir indiqué localhost:8000 est que l'API attend une chaîne de l'URL.
- Essayer une API POST
- Nous allons essayer de nous connecter à une API POST ici. De plus, nous sommes conscients que des données seront présentes dans le corps. C'est alors que la structure sera utile.
- Vous vous souvenez de cette rubrique ?
paquet principal
importer (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
)
- Suite à cela, nous allons créer une structure ayant deux champs de données, comme vous pouvez le voir :
type Job struct {
Salary int `json:"salary" liaison : "obligatoire"`
Chaîne de nom `json:"nom" liaison : "obligatoire"`
}
- Le json:"salary" et le json:"name" représentent les différentes clés. Vous pouvez également voir que la liaison a été spécifiée comme "obligatoire".
- Après la //2ème section, nous allons taper :
s.POST("/highlight", func (c *gin.Context){
tâche de données var
if err := c.ShouldBind(&data); erreur != néant{
fmt.Println (err)
c.JSON(http.StatusBadRequest, gin.H{
"erreur": fmt.Sprintf("%v", erreur),
})
} autre{
c.JSON(http.StatusOK, gin.H{
« données » : données,
})
}
})
- Regardons ce bloc de code. Dans le s.POST, nous allons construire l'objet pour le Job. Le contexte "c" devrait ensuite être attaché au modèle de données après cela. Si c.ShouldBind(&data) génère une erreur, il alertera l'API du problème.
- J'ai fait une mauvaise requête qui démontre l'erreur qui a été observée dans "error":fmt.Sprintf("%v", err) dans c.JSON(http.StatusBadRequest).
- S'il n'y a pas de problème, la clé "data" sera utilisée pour transmettre les données à la réponse de l'API.
- Exécutons le dernier bloc de code
- Examinons maintenant la dernière étape du programme. Nous devons taper go run main.go pour ce faire. De plus, j'utiliserai Postman pour montrer comment fonctionne l'API et comment fonctionne le code. La version de bureau doit juste être installée.
- Vous pouvez voir que j'ai deux champs de données dans le corps si vous regardez la capture d'écran ci-dessous. Raw et JSON devraient être les choix pour le corps.

- Lorsque nous cliquons sur "Envoyer", nous verrons le résultat suivant :
{
"Les données": {
"salaire": 23000,
"nom": "Robert Hall"
}
}
Avez-vous pu comprendre le programme ? Oui? Alors, super. Dans le dernier cas, nous voyons trois API en cours d'exécution, celle sans rien mentionner dans l'URL, celle qui attend une chaîne, puis la dernière qui attend des valeurs dans le corps. J'espère que vous pouvez maintenant vous attaquer à certaines tâches difficiles de l'API REST.