Skip to content

Instantly share code, notes, and snippets.

@idoqo
Created June 25, 2020 13:37
Show Gist options
  • Save idoqo/78601297d4ee357c044ec6be99726ce8 to your computer and use it in GitHub Desktop.
Save idoqo/78601297d4ee357c044ec6be99726ce8 to your computer and use it in GitHub Desktop.
save chi routes to a txt file
package main
import (
"fmt"
"net/http"
"os"
"strings"
"github.com/go-chi/chi"
"github.com/go-chi/chi/middleware"
)
func main() {
r := chi.NewRouter()
r.Use(middleware.RequestID)
r.Use(middleware.RealIP)
r.Use(middleware.Logger)
r.Get("/", rudy)
r.Get("/recv", recv)
r.Get("/send", send)
f, err := os.Create("routes.txt")
if err != nil {
fmt.Println(err)
}
defer f.Close()
walker := func(method string, route string, handler http.Handler, middlewares ...func(http.Handler) http.Handler) error {
route = strings.Replace(route, "/*/", "/", -1)
s := fmt.Sprintf("%s\t\t%s\n", method, route)
_, err = f.WriteString(s)
if err != nil {
return err
}
return nil
}
if err := chi.Walk(r, walker); err != nil {
fmt.Printf("Error: %s\n", err.Error())
}
http.ListenAndServe(":3333", r)
}
func recv(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("received"))
}
func send(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("sent"))
}
func rudy(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("rudy? yeah!"))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment