Печать всех маршрутов в маршрутизаторе Chi

👉 Читайте полную статью на 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 👈

Оцените статью
devanswers.ru
Добавить комментарий