doc.gno

1.75 Kb ยท 36 lines
 1// Package mux provides a simple routing and rendering library for handling dynamic path-based requests in Gno contracts.
 2//
 3// The `mux` package aims to offer similar functionality to `http.ServeMux` in Go, but for Gno's Render() requests.
 4// It allows you to define routes with dynamic parts and associate them with corresponding handler functions for rendering outputs.
 5//
 6// Usage:
 7// 1. Create a new Router instance using `NewRouter()` to handle routing and rendering logic.
 8// 2. Register routes and their associated handler functions using the `Handle(route, handler)` method.
 9// 3. Implement the rendering logic within the handler functions, utilizing the `Request` and `ResponseWriter` types.
10// 4. Use the `Render(path)` method to process a given path and execute the corresponding handler function to obtain the rendered output.
11//
12// Route Patterns:
13// Routes can include dynamic parts enclosed in braces, such as "users/{id}" or "hello/{name}". The `Request` object's `GetVar(key)`
14// method allows you to extract the value of a specific variable from the path based on routing rules.
15//
16// Example:
17//
18//	router := mux.NewRouter()
19//
20//	// Define a route with a variable and associated handler function
21//	router.HandleFunc("hello/{name}", func(res *mux.ResponseWriter, req *mux.Request) {
22//		name := req.GetVar("name")
23//		if name != "" {
24//			res.Write("Hello, " + name + "!")
25//		} else {
26//			res.Write("Hello, world!")
27//		}
28//	})
29//
30//	// Render the output for the "/hello/Alice" path
31//	output := router.Render("hello/Alice")
32//	// Output: "Hello, Alice!"
33//
34// Note: The `mux` package provides a basic routing and rendering mechanism for simple use cases. For more advanced routing features,
35// consider using more specialized libraries or frameworks.
36package mux