router

package
v1.55.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2025 License: MIT Imports: 5 Imported by: 1

README

Package router

Пакет router предоставляет обертку над httprouter с поддержкой метрик и удобной регистрацией обработчиков. Интегрируется с системой мониторинга для отслеживания эндпоинтов.

Types

Router

Структура для управления HTTP-маршрутами. Обеспечивает регистрацию обработчиков, сбор метрик и работу с параметрами URL.

Methods:

New() *Router

Конструктор роутера.

(r *Router) GET(path string, handler http.Handler) *Router

Зарегистрировать обработчик для GET-запросов. Аналогичные методы: POST(), PUT(), DELETE().

(r *Router) Handler(method string, path string, handler http.Handler) *Router

Зарегистрировать обработчик для произвольного HTTP-метода.

(r *Router) ServeHTTP(writer http.ResponseWriter, request *http.Request)

Обработать HTTP-запрос.

(r *Router) InternalRouter() *httprouter.Router

Возвращает внутренний экземпляр httprouter.Router для кастомных настроек.

Functions

ParamsFromRequest(http *http.Request) Params

Извлечь URL-параметры из запроса.

ParamsFromContext(ctx context.Context) Params

Извлечь URL-параметры из контекста.

Usage

Default usage flow
package main

import (
	"log"
	"net/http"

	"github.com/txix-open/isp-kit/http/router"
)

func main() {
	r := router.New()
	r.GET("/users/:id", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		params := router.ParamsFromRequest(r)
		userId := params.ByName("id") /* get id param */
		log.Println(userId)
		w.WriteHeader(http.StatusOK)
	}))
	_ = http.ListenAndServe(":8080", r)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Params

type Params = httprouter.Params

func ParamsFromContext

func ParamsFromContext(ctx context.Context) Params

func ParamsFromRequest

func ParamsFromRequest(http *http.Request) Params

type Router

type Router struct {
	// contains filtered or unexported fields
}

func New

func New() *Router

func (*Router) DELETE

func (r *Router) DELETE(path string, handler http.Handler) *Router

func (*Router) GET

func (r *Router) GET(path string, handler http.Handler) *Router

func (*Router) Handler

func (r *Router) Handler(method string, path string, handler http.Handler) *Router

func (*Router) InternalRouter

func (r *Router) InternalRouter() *httprouter.Router

func (*Router) POST

func (r *Router) POST(path string, handler http.Handler) *Router

func (*Router) PUT

func (r *Router) PUT(path string, handler http.Handler) *Router

func (*Router) ServeHTTP

func (r *Router) ServeHTTP(writer http.ResponseWriter, request *http.Request)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL