1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wandercn-mux

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Mux

Mux — это простой и эффективный распределитель маршрутов, который поддерживает интерфейс net/http стандартной библиотеки.

Данные маршрутизации хранятся в префиксном дереве preTree, поддерживаемом библиотекой https://github.com/obity/pretree.

Текущая версия поддерживает только переменные маршруты и простые маршруты, такие как /user/:id или /user/login. В зависимости от метода HTTP-запроса GET, HEAD, POST, PUT, PATCH, DELETE, CONNECT, OPTIONS, TRACE маршрутизация обрабатывается отдельно, а маршруты между различными группами изолированы друг от друга.

Формат записи переменных маршрутизации поддерживает как :id, так и {id}, но фактическое хранение осуществляется в формате :id.

Doc

См. этот документ на GoDoc (https://pkg.go.dev/github.com/obity/mux).

Install

go get -u github.com/obity/mux@latest

ToDo

  • Необходимо получить переменные {var} из маршрута, чтобы обработчик мог передать эти значения параметров на серверную часть.
  • Абстрактный алгоритм хранения движка: поддержка пользовательских алгоритмов, достаточно реализовать интерфейс Engine, чтобы включить его самостоятельно.
  • Добавить функцию установки базового пути маршрута, по умолчанию API версии не включены, например, "/v1", "/2".

Example

package main

import (
	"net/http"

	"github.com/obity/mux"
)

func main() {
	m := mux.NewMux()
	m.GET("/pet/findByStatus", Findbystatus)
	m.GET("/pet/{id}", PetHandler)
	m.POST("/user/createWithList", Createwithlist)
	m.DELETE("/user/:username", Userinfo)
	m.Start(":8001")
}

func PetHandler(w http.ResponseWriter, r *http.Request) {
	vars := mux.Vars(r)
	ID := vars["id"]
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("ID:" + ID))
	return
}

func Findbystatus(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("FindByStatus matched:" + r.RequestURI))
	return
}

func Createwithlist(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("CreateWithList matched:" + r.RequestURI))
	return
}

func Userinfo(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("UserInfo matched:" + r.RequestURI))
	return
}

func UserHandler(w http.ResponseWriter, r *http.Request) {
	w.WriteHeader(http.StatusOK)
	w.Write([]byte("UserInfo matched:" + r.RequestURI))
	return
}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Mux — это простой и эффективный распределитель маршрутов, который поддерживает интерфейс net/http стандартной библиотеки. Данные о маршрутах хранятся в префиксном дереве preTree, поддержку для которого обеспечивает ресурс https://github.com/obity/pretree. Развернуть Свернуть
GPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Язык

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wandercn-mux.git
git@api.gitlife.ru:oschina-mirror/wandercn-mux.git
oschina-mirror
wandercn-mux
wandercn-mux
main