Home  >  Article  >  Backend Development  >  How to use Go language to develop the restaurant search function of the ordering system

How to use Go language to develop the restaurant search function of the ordering system

PHPz
PHPzOriginal
2023-11-02 16:37:52590browse

How to use Go language to develop the restaurant search function of the ordering system

How to use Go language to develop the restaurant search function of the ordering system

In modern society, people are increasingly dependent on the Internet and mobile devices for ordering food. With the rapid development of the takeout and catering industries, an efficient and accurate restaurant search function is particularly important for the user experience of the ordering system. This article will introduce how to use Go language to develop the restaurant search function of the ordering system, and provide specific code examples for reference.

1. Database design
Before developing the restaurant search function, you first need to design and establish a restaurant database to store relevant information. The following is an example database table structure:

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;

This is a simplified restaurant table that contains fields such as id, name, address, city, province, country, longitude and latitude. According to actual needs, relevant fields can be added or modified according to business scenarios.

2. Import dependencies
Before starting development, you first need to import the corresponding Go language dependency package. We use gin to handle HTTP requests and responses, and gorm to operate the database.

go get -u github.com/gin-gonic/gin
go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql

3. Write code
The following is a sample code for implementing the restaurant search function:

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")
}

In the above code, we first define a Restaurant structure, using For mapping database table fields. We then established a connection to the database and automatically migrated the table structure. Next, we created a route and defined a handler function for GET requests.

In the processing function, we first obtain the keyword parameter keyword passed by the user. Then, use gorm's Where method to perform a fuzzy matching query to find all restaurants whose names contain keywords. Finally, the query results are returned to the client in JSON format.

4. Test function
After completing the code writing, we can use tools such as Postman to test whether the restaurant search function works properly. Suppose we start the program and listen on the local port 8080. By sending a GET request to http://localhost:8080/restaurants/search?keyword=xxx, where xxx is the keyword of the restaurant name you want to search, you can get the corresponding search results.

Summary:
This article introduces how to use Go language to develop the restaurant search function of the ordering system, and provides specific code examples. By properly designing the database table and using the gin and gorm libraries of the Go language, we can easily implement an efficient and accurate restaurant search function. I hope this article can be helpful to you, and I wish you good luck in your development work!

The above is the detailed content of How to use Go language to develop the restaurant search function of the ordering system. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn