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

Barbara Streisand
Release: 2024-10-24 08:59:02
Original
432 people have browsed it

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

Customizing URL Routing in Go

When building web applications in Go, it's common to define predefined routes for specific URLs. However, there are instances where you may need to read and handle arbitrary URL paths without predetermined routes.

Reading and Printing Parameters from a Dynamic URL

To read the "any_name" parameter from a URL path like "example.com/person/(any_name)", consider using the popular gorilla/mux package. Here's how you can implement it:

<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>
Copy after login

How it Works

  • mux.NewRouter() creates a new Gorilla Mux router.
  • r.HandleFunc("/person/{name}", ...) defines a route for URLs matching the pattern "/person/(any_name)".
  • The route handler function receives http.ResponseWriter and *http.Request as arguments.
  • mux.Vars(r) retrieves a map of path parameters from the request.
  • vars["name"] gets the value of the "name" parameter.
  • fmt.Fprintf(w, ...) writes the name to the response body.

The above is the detailed content of How to Handle Arbitrary URL Paths in Go Without Predefined Routes?. For more information, please follow other related articles on the PHP Chinese website!

source:php
Statement of this Website
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!