👉 Читайте полную статью на TheDeveloperCafe 👈
Начало работы
Если вы пишете на Go, то наверняка слышали о популярном http-роутере chi. В этой статье вы узнаете, как вывести все маршруты, зарегистрированные в маршрутизаторе, это очень полезно для отладки.
Если вы хотите узнать о chi, пожалуйста, прочитайте Restful routing with Chi.
Настройка маршрутизатора
Я предполагаю, что у вас есть проект с настроенным chi (если нет, пожалуйста, установите chi).
Давайте рассмотрим приложение, в котором есть маршрутизатор с 3 зарегистрированными маршрутами.
package main
import (
"fmt"
"github.com/go-chi/chi/v5"
"net/http"
)
func main() {
router := chi.NewRouter()
router.Get("/articles", sayHello)
router.Get("/articles/{articleID}", sayHello)
router.With(func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
next.ServeHTTP(w, r)
})
}).Post("/articles", sayHello) // 👈 route with middleware
}
func sayHello(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World"))
}
Посмотрите внимательно, один из этих маршрутов (маршрут POST
) также имеет промежуточное ПО. Теперь мы хотим вывести все маршруты и количество промежуточных программ, установленных на каждом из них.
Печать маршрутов с помощью chi.Walk
Мы хотим вывести каждый маршрут в формате: [<method>]: '<route>' has <x> middlewares
.
…читать полную версию статьи на TheDeveloperCafe
👉 Читать полную версию статьи на TheDeveloperCafe 👈