Le développement Web est l'un des nombreux domaines dans lesquels vous pouvez utiliser Go. De nombreuses entreprises et projets utilisent Go sur le backend de leurs applications Web, principalement pour sa rapidité, sa facilité d'utilisation et son écosystème de packages.

La réseau/http contient la plupart des fonctionnalités dont vous aurez besoin pour créer des applications Web dans Go. Vous pouvez utiliser d'autres packages de la bibliothèque standard riche en fonctionnalités. La codage package gère la conversion de données de bas niveau et le html package vous permet d'interagir avec les pages Web.

Au-delà de cela, l'écosystème de packages tiers de Go fournit des fonctionnalités supplémentaires pour faciliter le développement Web.

1. Le cadre du gin

Gin est l'un des packages de développement Web les plus populaires de Go. Gin est un micro-framework hautement performant pour la création d'applications Web et de microservices en Go.

Gin est rapide et fournit des fonctionnalités intégrées de rendu, de middleware et de validation JSON. Il offre une gestion facile des erreurs et une extensibilité. Vous pouvez documenter vos applications Gin avec la spécification OpenAPI3 et swagger.

instagram viewer

Gin propose une API de type Martini, et le projet prétend être quarante fois plus rapide. Pour les microservices, vous pouvez réutiliser les composants modulaires de Gin pour développer des pipelines de traitement des demandes.

Vous pouvez installer le framework Gin avec cette commande :

aller obtenir github.com/gin-gonic/gin

Voici comment configurer un point de terminaison de requête simple avec le framework Gin.

importer (
"github.com/gin-gonic/gin"
"Journal"
"net/http"
)

fonctionprincipale() {
routeur := gin. Défaut()

routeur. GET("/bonjour", fonction(contexte *gin. Le contexte) {
le contexte. JSON(http. StatutOK, gin. H{"success": "Atteint avec succès le point final"})
})

Journal. Fataln (http. EcouteEtServe(":8080", néant))
}

Vous pouvez créer une instance de routeur avec le Défaut méthode de la Gin forfait. La OBTENIR La méthode pour les requêtes GET prend le chemin (endpoint) et une déclaration de fonction de gestionnaire. Cet exemple de fonction renvoie un 200 Code d'état HTTP au client et une réponse JSON réussie dans le corps de la réponse.

2. Le cadre de la fibre

Fibre est un coffre-fort pour la mémoire, Similaire à ExpressJS cadre construit sur la rapidité fulgurante rapidehttp forfait. Il offre d'excellentes performances et cible les développeurs backend Javascript débutants et expérimentés.

Fiber propose la plupart des fonctionnalités dont vous aurez besoin dans un framework backend. Il gère le routage, le regroupement des demandes, la validation, la création de modèles, les crochets, la gestion des erreurs et bien plus encore. La fibre est extensible et vous pouvez rendre la fibre plus rapide à l'aide d'un encodeur et d'un décodeur personnalisés.

Installez la dernière version (v2) du framework Fiber avec cette commande :

aller obtenir github.com/gofiber/fiber/v2

Voici comment vous pouvez configurer un point de terminaison de requête GET simple avec le framework Fibre.

importer "github.com/gofiber/fiber/v2"

fonctionprincipale() {
app := fibre. Nouveau()

application. Get("/bonjour", fonction(ctx *fibre. CTX)Erreur {
revenir ctx. SendString("Bonjour")
})

Journal. Fatal (env. Ecoutez(":8080"))
}

La Nouveau renvoie une nouvelle instance d'une application Fiber. La Obtenir la méthode consiste à mettre en place OBTENIR demandes. Dans ce cas, le /hello le point de terminaison renvoie la chaîne Bonjour.

Vous configurez l'application pour écouter sur le port port localhost 8080 avec le Ecoutez méthode de l'application.

3. Le cadre de l'iris

Iris est un framework Web multiplateforme, efficace, complet et bien conçu. Vous pouvez l'utiliser pour créer des API et des applications Web portables hautes performances dans Go. Comme Fiber, Iris est ExpressJS inspire certains des modèles de conception d'Iris.

Vous pouvez créer rapidement des applications sans serveur avec Iris et les déployer sur AWS, Netlify et de nombreux autres services. Le package Iris contient une application CLI que vous pouvez utiliser pour recharger en direct les modèles Iris et surveiller votre application.

Le package Iris a des fonctionnalités qui rendent le développement extrêmement facile. Iris dispose d'une API de type Sinatra qui prend en charge la journalisation, le routage, les sessions et les Websockets. Il prend également en charge GRPC, le service de fichiers, l'authentification, l'autorisation et les fonctionnalités de test.

Exécutez cette commande dans le terminal de votre espace de travail pour installer le framework Iris sur vos modules Go.

aller obtenir github.com/kataras/iris/v12@lastest

Voici comment configurer un OBTENIR demande avec le framework Iris pour s'exécuter sur le port localhost 8080.

importer "github.com/kataras/iris/v12"

fonctionprincipale() {
app := iris. Nouveau() // nouvelle instance Iris

application. Handle("OBTENIR", "/bonjour", fonction(iris ctx. Le contexte) {
_, euh := ctx. JSON(iris. Carte{"message": "bonjour"})

si erreur != néant {
revenir
}
})

erreur := appli. Courir (iris. Adresse(":8080"), iris. Sans erreur de serveur (iris. ErrServerClosed))

si erreur != néant {
revenir
}
}

La application variable est l'instance d'une nouvelle application Iris. La OBTENIR gestionnaire renvoie un message JSON à demander sur le /hello itinéraire.

4. Le cadre Beego

Beégo est un framework Go facile à utiliser, intelligent et hautement performant pour la création d'applications Web. Beego simplifie la création d'applications modulaires. Il est livré avec un ORM (mappeur relationnel objet) et un routeur intégrés, ainsi qu'une fonctionnalité de création de modèles.

Beego intègre des fonctionnalités spécifiques à Go avec des interfaces et l'intégration de structures. Il a une excellente structure d'API, optimisée pour la vitesse avec la prise en charge et l'internalisation des sessions et du déploiement.

Beego est répandu et de nombreuses entreprises, d'Opera à Huawei, Tencent et Weico, utilisent Beego en production.

Vous pouvez utiliser cette commande pour installer le Framework Beego dans votre projet.

aller obtenir -u github.com/beego/beego/v2

Voici comment configurer un simple OBTENIR demander le point de terminaison de l'API avec le framework Beego.

importer "github.com/beego/beego/v2/server/web"

taper Instance de contrôleur structure {
la toile. Manette // point d'entrée pour l'application beego
}

fonction(contrôleur *InstanceContrôleur)Obtenir() {
manette. CTX. WriteString("bonjour le monde")
}

fonctionprincipale() {
la toile. Routeur("/hello", &InstanceContrôleur{}) // montage avec beego
la toile. Courir() // exécution de l'application beego
}

La Instance de contrôleur struct est le point d'entrée de l'application Beego. La Obtenir la fonction de gestionnaire contient la logique d'un OBTENIR demande au /hello point final. Il renvoie la chaîne "hello world" comme réponse.

5. Le cadre Revel

Se délecter brille pour la flexibilité qu'il offre pour la création d'applications Web. Vous pouvez utiliser le routage de type sécurisé de Revel, créer des contrôleurs et utiliser Aller aux modèles avec Revel.

Revel fournit des fonctionnalités de routage, d'encodage et de décodage JSON faciles et de gestion de session. Il comprend également des fonctions pour gérer la mise en cache, le débogage et le test des applications Web. Revel a un package CLI pour créer des CLI pour vos applications. Vous pouvez servir des fichiers statiques avec Revel et créer des applications de chat avec sa fonctionnalité Websocket.

Installez le framework Revel dans le répertoire de votre projet avec cette commande :

aller obtenir github.com/revel/revel

Il est facile de configurer une application Revel. Voici une fonction de gestionnaire simple pour un OBTENIR point de terminaison de requête avec le framework Revel.

importer (
"github.com/revel/revel"
)

taper Modèle structure { // structure de modèle simple
Message chaîne de caractères`json:"message"`
La description chaîne de caractères`json:"description"`
}

taper Application structure {
*se délecter. Manette // point d'entrée pour les requêtes
}

fonction(application App)Bonjour()se délecter.Résultat {
modèle := Modèle{
Message: "succès",
Description: "Bonjour!, Monde",
}

application. Réponse. ContentType = "application/json"
revenir application. RenduJSON(modèle)
}

La Application struct est le point d'entrée de l'application Revel. Vos gestionnaires implémenteront la structure de l'application. Le type de contenu de la réponse est JSON et le Bonjour La fonction de gestionnaire renvoie une structure JSON encodée.

Méfiez-vous de la différence entre les routeurs et les frameworks

Vous trouverez de nombreux packages Web dans l'écosystème Go, dont la plupart sont des routeurs ou des frameworks. Les routeurs sont destinés à recevoir des requêtes via le protocole HTTP.

Vous aurez besoin de packages supplémentaires pour travailler avec les routeurs. Comme ceux de ce didacticiel, la plupart des frameworks incluent des routeurs intégrés ainsi que d'autres fonctionnalités.