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

Utilisez le framework Gin pour implémenter des fonctions de recherche et de filtrage

WBOY
Libérer: 2023-06-22 17:16:37
original
1589 Les gens l'ont consulté

Gin est un framework Web léger et évolutif qui devient de plus en plus populaire en raison de la vitesse et des performances du langage Go, ainsi que de sa simultanéité et de sa maintenabilité inégalées. Dans cet article, nous apprendrons comment utiliser le framework Gin pour implémenter les fonctionnalités de recherche et de filtrage.

Tout d’abord, nous devons configurer une application Gin de base. Pour ce faire, nous devons ajouter les dépendances requises dans le fichier go.mod et les installer. Ici, nous utilisons le framework Gin et la bibliothèque ORM de Go, GORM. Nous utiliserons MySQL comme base de données relationnelle.

Notre fichier go.mod devrait ressembler à ceci :

module github.com/mygithubaccount/myginapp require ( github.com/gin-gonic/gin v1.7.2 gorm.io/driver/mysql v1.2.1 gorm.io/gorm v1.21.9 )
Copier après la connexion

Pour la connexion à la base de données, nous utiliserons le style de format suivant :

username:password@tcp(hostname:port)/database_name?charset=utf8mb4&parseTime=True&loc=Local
Copier après la connexion

Ensuite, nous devons importer gin et net/http depuis le package Gin.

import ( "net/http" "github.com/gin-gonic/gin" )
Copier après la connexion

Dans notre fonction principale, nous devons nous connecter à la base de données et créer une variable appelée db tout en activant le middleware par défaut de Gin.

func main() { dsn := "username:password@tcp(hostname:port)/database_name?charset=utf8mb4&parseTime=True&loc=Local" db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { panic("failed to connect to database") } r := gin.Default() r.Use(cors.Default()) // Routes r.GET("/healthcheck", healthCheckHandler) // Port binding port := os.Getenv("PORT") if port == "" { port = "8080" } r.Run(":" + port) }
Copier après la connexion

C'est notre configuration de base. Considérons maintenant la mise en œuvre des fonctionnalités de recherche et de filtrage.

Nous implémenterons des fonctions de recherche et de filtrage sur le modèle de données suivant.

type User struct { ID uint `json:"id" gorm:"primarykey"` FirstName string `json:"firstName"` LastName string `json:"lastName"` Age int `json:"age"` Gender string `json:"gender"` Email string `json:"email" gorm:"uniqueIndex"` }
Copier après la connexion

Nous définirons le gestionnaire de requêtes suivant pour gérer nos requêtes POST.

func searchUsersHandler(c *gin.Context) { var filter User var users []User if err := c.ShouldBindJSON(&filter); err != nil { c.AbortWithStatus(http.StatusBadRequest) return } db.Where(&filter).Find(&users) c.JSON(http.StatusOK, users) }
Copier après la connexion

Ce gestionnaire nous permet de transmettre les paramètres de la requête POST dans la structure User et d'exécuter une requête dans la table de la base de données. Nous pouvons également gérer les requêtes d'autres manières :

  • LIKE
  • IN
  • NOT
  • OR

Ici, nous effectuerons des requêtes d'exécution dans l'application. Cela convient aux petites applications, mais cela peut entraîner une charge excessive du serveur pour les applications plus volumineuses. Une meilleure approche serait de déplacer la requête de recherche vers le front-end, en exploitant les ressources du navigateur du client pour la recherche/le filtrage.

Maintenant, nous devons lier la demande et le gestionnaire. Cela peut être fait via le routage Gin.

r.POST("/search", searchUsersHandler)
Copier après la connexion

Grâce à cette route, nous pouvons faire une requête POST et envoyer une structure User à l'application, qui sera utilisée pour interroger les enregistrements utilisateur.

Voici comment implémenter la fonctionnalité de recherche et de filtrage à l'aide du framework Gin. Pour résumer, dans cet article, nous avons appris comment nous connecter à la base de données, utiliser le middleware par défaut de Gin, définir le modèle de données, écrire des gestionnaires de requêtes et lier des routes aux gestionnaires. L'application peut désormais être utilisée pour effectuer des opérations de base de recherche et de filtrage d'enregistrements de données dans une base de données relationnelle.

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!

Étiquettes associées:
source:php.cn
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!