Maison > développement back-end > Golang > Comment utiliser le langage Go pour développer la fonction de recherche de restaurant du système de commande

Comment utiliser le langage Go pour développer la fonction de recherche de restaurant du système de commande

PHPz
Libérer: 2023-11-02 16:37:52
original
599 Les gens l'ont consulté

Comment utiliser le langage Go pour développer la fonction de recherche de restaurant du système de commande

Comment utiliser le langage Go pour développer la fonction de recherche de restaurant du système de commande de nourriture

Dans la société moderne, les gens dépendent de plus en plus d'Internet et des appareils mobiles pour commander de la nourriture. Avec le développement rapide des secteurs des plats à emporter et de la restauration, une fonction de recherche de restaurant efficace et précise est particulièrement importante pour l'expérience utilisateur du système de commande. Cet article expliquera comment utiliser le langage Go pour développer la fonction de recherche de restaurants du système de commande et fournira des exemples de code spécifiques pour référence.

1. Conception de la base de données
Avant de développer la fonction de recherche de restaurants, vous devez d'abord concevoir et établir une base de données de restaurants pour stocker les informations pertinentes. Voici un exemple de structure de table de base de données :

CREATE TABLE `restaurants` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `address` varchar(255) NOT NULL,
  `city` varchar(255) NOT NULL,
  `province` varchar(255) NOT NULL,
  `country` varchar(255) NOT NULL,
  `latitude` float(10,6) NOT NULL,
  `longitude` float(10,6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Copier après la connexion

Il s'agit d'une table de restaurant simplifiée qui contient des champs tels que l'identifiant, le nom, l'adresse, la ville, la province, le pays, la longitude et la latitude. Selon les besoins réels, les champs pertinents peuvent être ajoutés ou modifiés en fonction des scénarios métiers.

2. Importer les dépendances
Avant de commencer le développement, vous devez d'abord importer le package de dépendances du langage Go correspondant. Nous utilisons gin pour gérer les requêtes et réponses HTTP, et gorm pour faire fonctionner la base de données.

go get -u github.com/gin-gonic/gin
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql
Copier après la connexion

3. Écrivez le code
Ce qui suit est un exemple de code pour implémenter la fonction de recherche de restaurant :

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "net/http"
)

type Restaurant struct {
    ID        uint   `gorm:"primaryKey"`
    Name      string `gorm:"column:name"`
    Address   string `gorm:"column:address"`
    City      string `gorm:"column:city"`
    Province  string `gorm:"column:province"`
    Country   string `gorm:"column:country"`
    Latitude  float64 `gorm:"column:latitude"`
    Longitude float64 `gorm:"column:longitude"`
}

func main() {
    dsn := "<mysql connection string>"
    db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err != nil {
        panic("Failed to connect to database")
    }

    db.AutoMigrate(&Restaurant{})

    router := gin.Default()

    router.GET("/restaurants/search", func(c *gin.Context) {
        keyword := c.Query("keyword")

        var restaurants []Restaurant
        result := db.Where("name LIKE ?", fmt.Sprintf("%%%s%%", keyword)).Find(&restaurants)
        if result.Error != nil {
            c.JSON(http.StatusInternalServerError, gin.H{"error": "Failed to retrieve restaurants"})
            return
        }

        c.JSON(http.StatusOK, restaurants)
    })

    router.Run(":8080")
}
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord une structure de restaurant pour mapper les champs de la table de base de données. Nous avons ensuite établi une connexion à la base de données et migré automatiquement la structure des tables. Ensuite, nous avons créé une route et défini une fonction de gestionnaire pour les requêtes GET.

Dans la fonction de traitement, nous récupérons d'abord le paramètre mot-clé mot-clé transmis par l'utilisateur. Ensuite, utilisez la méthode Where de gorm pour effectuer une requête de correspondance floue afin de trouver tous les restaurants dont les noms contiennent des mots-clés. Enfin, les résultats de la requête sont renvoyés au client au format JSON.

4. Fonction de test
Après avoir terminé l'écriture du code, nous pouvons utiliser des outils tels que Postman pour tester si la fonction de recherche de restaurant fonctionne correctement. Supposons que nous démarrions le programme et écoutions sur le port local 8080. En envoyant une requête GET à http://localhost:8080/restaurants/search?keyword=xxx, où xxx est le mot-clé du nom du restaurant que vous souhaitez rechercher, vous pouvez obtenir les résultats de recherche correspondants.

Résumé :
Cet article présente comment utiliser le langage Go pour développer la fonction de recherche de restaurant du système de commande et fournit des exemples de code spécifiques. En concevant correctement la table de la base de données et en utilisant les bibliothèques gin et gorm du langage Go, nous pouvons facilement implémenter une fonction de recherche de restaurant efficace et précise. J'espère que cet article pourra vous être utile et je vous souhaite bonne chance dans votre travail de développement !

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: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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal