近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。
本节分享一个用于构建 Go HTTP 服务的轻量级、惯用且可组合的Web路由器chi,它特别擅长帮助您编写大型 REST API 服务,这些服务可以随着项目的增长和变化而保持可维护性。chi
基于 Go 1.7 中引入的新context
包构建,用于处理处理程序链中的信号、取消和请求范围的值。
该项目的重点是寻找一种优雅而舒适的设计来编写 REST API 服务器,该设计是在为我们的公共 API 服务提供支持的 Pressly API 服务开发期间编写的,该服务反过来为我们所有的客户端应用程序提供支持。 chi 设计的主要考虑因素是:项目结构、可维护性、标准 http 处理程序(仅限 stdlib)、开发人员生产力以及将大型系统解构为许多小部分。核心路由器
github.com/go-chi/chi
非常小(小于 1000 LOC),但我们还包含了一些有用/可选的子包:middleware、render 和docgen。我们希望你也喜欢它!
image.png 特征
net/http
context
包之上,提供价值链、取消和超时docgen
自动生成从您的源到 JSON 或 Markdown 的路由文档具体使用方式如下: 1、安装包
go get -u github.com/go-chi/chi/v5
2、使用
package main
import (
"net/http"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
func main() {
r := chi.NewRouter()
r.Use(middleware.Logger)
r.Get("/", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("welcome"))
})
http.ListenAndServe(":3000", r)
}
更多使用案例
更多使用方式,可以参考官方提供的文档说明
本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。