В библиотеке Chi для языка программирования Go, обрезание префикса URL можно осуществить с помощью механизма маршрутизации (routing).
Chi предоставляет функцию SubRouter() для создания подмаршрутов или подгрупп маршрутов. С помощью этой функции можно определить основной маршрут и его подмаршруты, которые будут наследовать общий префикс URL от основного маршрута.
Вот пример кода, который показывает, как использовать функцию SubRouter() для обрезания префикса URL:
package main import ( "fmt" "net/http" "github.com/go-chi/chi" ) func main() { r := chi.NewRouter() // Определение основного маршрута r.Route("/api", func(apiRouter chi.Router) { // Определение подмаршрута, наследующего префикс /api от основного маршрута apiRouter.Get("/users", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Получение списка пользователей")) }) apiRouter.Get("/posts", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Получение списка постов")) }) }) // Определение другого маршрута без префикса URL r.Get("/status", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Проверка статуса сервера")) }) fmt.Println("Сервер работает на порту 8080...") http.ListenAndServe(":8080", r) }
В этом примере мы создаем основной маршрут /api
с использованием функции Route()
, а затем создаем подмаршруты /users
и /posts
с помощью функции Get()
для метода HTTP GET
. Подмаршруты автоматически наследуют префикс /api
от основного маршрута.
Кроме того, мы также создаем отдельный маршрут /status
, который не имеет префикса URL.
При запуске этого кода и переходе по адресу http://localhost:8080/api/users
, вы увидите сообщение "Получение списка пользователей". А при переходе по адресу http://localhost:8080/status
, вы увидите сообщение "Проверка статуса сервера".