Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gehe ich mit beliebigen URL-Pfaden in Go ohne vordefinierte Routen um?

Wie gehe ich mit beliebigen URL-Pfaden in Go ohne vordefinierte Routen um?

Barbara Streisand
Barbara StreisandOriginal
2024-10-24 08:59:02416Durchsuche

How to Handle Arbitrary URL Paths in Go Without Predefined Routes?

URL-Routing in Go anpassen

Beim Erstellen von Webanwendungen in Go ist es üblich, vordefinierte Routen für bestimmte URLs zu definieren. Es gibt jedoch Fälle, in denen Sie möglicherweise beliebige URL-Pfade ohne vorgegebene Routen lesen und verarbeiten müssen.

Parameter aus einer dynamischen URL lesen und drucken

So lesen Sie die „ Wenn Sie den Parameter „any_name“ aus einem URL-Pfad wie „example.com/person/(any_name)“ verwenden, sollten Sie das beliebte Paket gorilla/mux verwenden. So können Sie es implementieren:

<code class="go">import (
    "fmt"
    "net/http"
    "github.com/gorilla/mux"
)

func main() {
    // Create a new router
    r := mux.NewRouter()

    // Define a route handler for the dynamic URL pattern
    r.HandleFunc("/person/{name}", func(w http.ResponseWriter, r *http.Request) {
        // Get the "name" parameter from the URL
        vars := mux.Vars(r)
        name := vars["name"]

        // Print the name to the response
        fmt.Fprintf(w, "Hello, %s!", name)
    })

    // Start the HTTP server
    http.ListenAndServe(":8080", r)
}</code>

So funktioniert es

  • mux.NewRouter() erstellt einen neuen Gorilla Mux-Router.
  • r.HandleFunc("/person/{name}", ...) definiert eine Route für URLs, die dem Muster „/person/(any_name)“ entsprechen.
  • Die Route-Handler-Funktion empfängt http.ResponseWriter und *http.Request als Argumente.
  • mux.Vars(r) ruft eine Karte von Pfadparametern aus der Anfrage ab.
  • vars["name"] ruft den Wert von "name" ab. Parameter.
  • fmt.Fprintf(w, ...) schreibt den Namen in den Antworttext.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit beliebigen URL-Pfaden in Go ohne vordefinierte Routen um?. 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