Heim  >  Artikel  >  Backend-Entwicklung  >  Wie schreibe ich mit der Go-Sprache das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem?

Wie schreibe ich mit der Go-Sprache das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem?

PHPz
PHPzOriginal
2023-11-01 16:36:331120Durchsuche

Wie schreibe ich mit der Go-Sprache das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem?

Wie verwende ich die Go-Sprache, um das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem zu schreiben?

Mit dem Aufkommen von Take-Away- und Tür-zu-Tür-Diensten entscheiden sich immer mehr Benutzer dafür, köstliches Essen zu Hause zu genießen. Bei Tür-zu-Tür-Kochdiensten ist das Feedback der Nutzer besonders wichtig, da es dazu beitragen kann, die Servicequalität und die Zufriedenheit der Nutzer zu verbessern. In diesem Artikel wird erläutert, wie Sie mithilfe der Go-Sprache das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem schreiben und spezifische Codebeispiele bereitstellen.

  1. Datenbankdesign und -erstellung

Zuerst müssen wir eine Datenbank entwerfen, um Benutzer-Feedback-Informationen zu speichern. Angenommen, wir haben eine Tabelle mit dem Namen „Feedback“, die die folgenden Felder enthält: id (automatisch inkrementierender Primärschlüssel), userId (Benutzer-ID), content (Feedback-Inhalt), createTime (Erstellungszeit).

Verwenden Sie die folgende SQL-Anweisung, um die Feedback-Tabelle zu erstellen:

CREATE TABLE feedback (

id INT AUTO_INCREMENT PRIMARY KEY,
userId INT NOT NULL,
content TEXT NOT NULL,
createTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP

);

  1. Erstellen Sie die Go-Sprachumgebung

Stellen Sie sicher, dass die Go-Sprachumgebung installiert und GOPATH festgelegt ist.

  1. Erstellen Sie ein Go-Modul

Führen Sie den folgenden Befehl in der Befehlszeile aus, um ein neues Go-Modul zu erstellen:

go mod init feedback

  1. Erstellen Sie eine Datenbankverbindung

Erstellen Sie eine Datei mit dem Namen db im Stammverzeichnis der Projekt-.go-Datei und fügen Sie den folgenden Code hinzu:

package main

import (

"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"

)

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

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

}

replace "root:password „Ersetzen Sie „“ durch Ihren Datenbank-Benutzernamen und Ihr Passwort und „feedback“ durch den Namen der von Ihnen erstellten Datenbank.

  1. Feedbackmodell erstellen

Erstellen Sie eine Datei namens „feedback.go“ im Stammverzeichnis des Projekts und fügen Sie den folgenden Code hinzu:

package main

import (

"database/sql"
"fmt"
"time"

)

type Feedback struct {

ID        int
UserID    int
Content   string
CreateTime time.Time

}

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

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

}

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

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

hier A Die Feedback-Struktur ist so definiert, dass sie Feedback-Informationen darstellt und Methoden zum Einfügen neuen Feedbacks und zum Erhalten sämtlicher Rückmeldungen bereitstellt.

    HTTP-Schnittstelle erstellen
Erstellen Sie eine Datei mit dem Namen main.go im Stammverzeichnis des Projekts und fügen Sie den folgenden Code hinzu:

package main

import (

"encoding/json"
"log"
"net/http"

)

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

}

Hier wird eine HTTP-Schnittstelle namens /feedback erstellt, die die GET-Methode zum Erhalten aller Feedback-Informationen und die POST-Methode zum Einfügen neuer Feedback-Informationen unterstützt.

    Starten Sie den Dienst.
Führen Sie den folgenden Befehl in der Befehlszeile aus, um den Dienst zu starten:

Gehen Sie main.go aus.

Jetzt können Sie Postman oder andere HTTP-Clients verwenden, um GET- und POST-Anfragen zu senden, um Ihren Dienst zu testen Tür-zu-Tür-Service Das Benutzer-Feedback-Modul des Geschirrsystems ist jetzt verfügbar.

Durch die oben genannten Schritte haben wir die Go-Sprache verwendet, um ein einfaches Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem zu schreiben. Sie können je nach tatsächlichem Bedarf erweitern und optimieren. Ich hoffe, dieser Artikel hilft Ihnen!

Das obige ist der detaillierte Inhalt vonWie schreibe ich mit der Go-Sprache das Benutzer-Feedback-Modul im Tür-zu-Tür-Kochsystem?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn