gorilla/mux 请求路由和分发的 Go 框架开源项目

我要开发同款
匿名用户2019年06月27日
37阅读
开发技术GO语言
所属分类Google Go、Web框架、Web应用开发
授权协议BSD

作品详情

gorilla/mux 实现了一个请求路由和分发的Go框架。

mux名字的意思是"HTTPrequestmultiplexer".和标准包 http.ServeMux类似,  mux.Router根据已注册路由列表匹配传入请求,并调用与URL或其他条件匹配的路由的处理程序。

主要特性:

Itimplementsthe http.Handler interfacesoitiscompatiblewiththestandard http.ServeMux.RequestscanbematchedbasedonURLhost,path,pathprefix,schemes,headerandqueryvalues,HTTPmethodsorusingcustommatchers.URLhosts,pathsandqueryvaluescanhavevariableswithanoptionalregularexpression.RegisteredURLscanbebuilt,or"reversed",whichhelpsmaintainingreferencestoresources.Routescanbeusedassubrouters:nestedroutesareonlytestediftheparentroutematches.Thisisusefultodefinegroupsofroutesthatsharecommonconditionslikeahost,apathprefixorotherrepeatedattributes.Asabonus,thisoptimizesrequestmatching.安装goget-ugithub.com/gorilla/mux代码示例funcmain(){r:=mux.NewRouter()r.HandleFunc("/",HomeHandler)r.HandleFunc("/products",ProductsHandler)r.HandleFunc("/articles",ArticlesHandler)http.Handle("/",r)}

这里我们注册了三个URL匹配路由进行处理。路径也可以是变量:

r:=mux.NewRouter()r.HandleFunc("/products/{key}",ProductHandler)r.HandleFunc("/articles/{category}/",ArticlesCategoryHandler)r.HandleFunc("/articles/{category}/{id:[0-9]+}",ArticleHandler)

这些名称用于创建路由变量的映射,可以通过调用mux.Vars获取:

funcArticlesCategoryHandler(whttp.ResponseWriter,r*http.Request){vars:=mux.Vars(r)w.WriteHeader(http.StatusOK)fmt.Fprintf(w,"Category:%v\n",vars["category"])}
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论