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

Comment utiliser le langage Go pour rédiger le module de feedback utilisateur dans le système de cuisson en porte-à-porte ?

PHPz
Libérer: 2023-11-01 16:36:33
original
1100 Les gens l'ont consulté

Comment utiliser le langage Go pour rédiger le module de feedback utilisateur dans le système de cuisson en porte-à-porte ?

Comment utiliser le langage Go pour rédiger le module de feedback utilisateur dans le système de cuisson en porte-à-porte ?

Avec l'essor des services à emporter et en porte-à-porte, de plus en plus d'utilisateurs choisissent de déguster de délicieux plats à la maison. Pour les services de cuisine en porte-à-porte, les commentaires des utilisateurs sont particulièrement importants, car ils peuvent contribuer à améliorer la qualité du service et la satisfaction des utilisateurs. Cet article explique comment utiliser le langage Go pour écrire le module de commentaires des utilisateurs dans le système de cuisson porte-à-porte et fournit des exemples de code spécifiques.

  1. Conception et création de bases de données

Tout d'abord, nous devons concevoir une base de données pour stocker les informations des commentaires des utilisateurs. Supposons que nous ayons une table nommée feedback, qui contient les champs suivants : id (clé primaire à incrémentation automatique), userId (ID utilisateur), content (contenu du feedback), createTime (heure de création).

Utilisez l'instruction SQL suivante pour créer la table de commentaires :

CREATE TABLE feedback (

id INT AUTO_INCREMENT PRIMARY KEY,
userId INT NOT NULL,
content TEXT NOT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
Copier après la connexion

);

  1. Créez l'environnement de langage Go

Assurez-vous que l'environnement de langage Go a été installé et que GOPATH est défini.

  1. Créer un module Go

Exécutez la commande suivante dans la ligne de commande pour créer un nouveau module Go :

go mod init feedback

  1. Créez une connexion à la base de données

Créez un fichier appelé db dans le répertoire racine du fichier .go du projet et ajoutez le code suivant :

package main

import (

"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
Copier après la connexion

)

func ConnectDB() (*sql.DB, erreur) {

db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/feedback")
if err != nil {
    return nil, fmt.Errorf("failed to connect to database: %v", err)
}

err = db.Ping()
if err != nil {
    return nil, fmt.Errorf("failed to ping database: %v", err)
}

return db, nil
Copier après la connexion

}

replace "root:password " Remplacez " " par le nom d'utilisateur et le mot de passe de votre base de données, et " feedback " par le nom de la base de données que vous avez créée.

  1. Créer un modèle de feedback

Créez un fichier appelé feedback.go dans le répertoire racine du projet et ajoutez le code suivant :

package main

import (

"database/sql"
"fmt"
"time"
Copier après la connexion

)

type Feedback struct {

ID        int
UserID    int
Content   string
CreateTime time.Time
Copier après la connexion

}

func InsertFeedback(db sql.DB, feedback Feedback) erreur {

stmt, err := db.Prepare("INSERT INTO feedback(userId, content) VALUES(?, ?)")
if err != nil {
    return fmt.Errorf("failed to prepare insert statement: %v", err)
}
defer stmt.Close()

_, err = stmt.Exec(feedback.UserID, feedback.Content)
if err != nil {
    return fmt.Errorf("failed to execute insert statement: %v", err)
}

return nil
Copier après la connexion

}

func GetFeedbacks(db sql.DB) ([]Feedback, erreur) {

rows, err := db.Query("SELECT * FROM feedback")
if err != nil {
    return nil, fmt.Errorf("failed to execute query: %v", err)
}
defer rows.Close()

feedbacks := make([]*Feedback, 0)
for rows.Next() {
    feedback := &Feedback{}
    err := rows.Scan(&feedback.ID, &feedback.UserID, &feedback.Content, &feedback.CreateTime)
    if err != nil {
        return nil, fmt.Errorf("failed to scan feedback: %v", err)
    }
    feedbacks = append(feedbacks, feedback)
}

return feedbacks, nil
Copier après la connexion

}

ici A La structure des commentaires est définie pour représenter les informations de retour et fournit des méthodes pour insérer de nouveaux commentaires et obtenir tous les commentaires.

  1. Créez une interface HTTP

Créez un fichier nommé main.go dans le répertoire racine du projet et ajoutez le code suivant :

package main

import (

"encoding/json"
"log"
"net/http"
Copier après la connexion

)

func main() {

db, err := ConnectDB()
if err != nil {
    log.Fatalf("failed to connect to database: %v", err)
}
defer db.Close()

http.HandleFunc("/feedback", func(w http.ResponseWriter, r *http.Request) {
    switch r.Method {
    case http.MethodGet:
        feedbacks, err := GetFeedbacks(db)
        if err != nil {
            log.Printf("failed to get feedbacks: %v", err)
            http.Error(w, "Internal server error", http.StatusInternalServerError)
            return
        }

        json.NewEncoder(w).Encode(feedbacks)
    case http.MethodPost:
        var feedback Feedback
        err := json.NewDecoder(r.Body).Decode(&feedback)
        if err != nil {
            log.Printf("failed to decode feedback: %v", err)
            http.Error(w, "Bad request", http.StatusBadRequest)
            return
        }

        err = InsertFeedback(db, &feedback)
        if err != nil {
            log.Printf("failed to insert feedback: %v", err)
            http.Error(w, "Internal server error", http.StatusInternalServerError)
            return
        }

        w.WriteHeader(http.StatusCreated)
    default:
        http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
    }
})

log.Println("Server listening on :8000")
log.Fatal(http.ListenAndServe(":8000", nil))
Copier après la connexion

}

Une interface HTTP nommée /feedback est créée ici, qui prend en charge la méthode GET pour obtenir toutes les informations de retour et la méthode POST pour insérer de nouvelles informations de retour.

  1. Démarrez le service

Exécutez la commande suivante dans la ligne de commande pour démarrer le service :

allez exécuter main.go

Maintenant, vous pouvez utiliser Postman ou d'autres clients HTTP pour envoyer des requêtes GET et POST afin de tester votre service porte-à-porte Le module de retour d'information des utilisateurs du système de parabole est désormais disponible.

À travers les étapes ci-dessus, nous avons utilisé le langage Go pour écrire un simple module de commentaires des utilisateurs dans le système de cuisson en porte-à-porte. Vous pouvez étendre et optimiser en fonction des besoins réels. J'espère que cet article vous aidera !

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
Tutoriels populaires
Plus>
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!