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!