当前位置: 首页 > news >正文

go routing 之 gorilla/mux

1. 背景

继续学习 go

2. 关于 routing 的学习

上一篇 go 用的库是:net/http ,这次我们使用官方的库 github.com/gorilla/mux 来实现 routing。

3. demo示例

package mainimport ("fmt""net/http""github.com/gorilla/mux"
)func main() {r := mux.NewRouter()r.HandleFunc("/books/{title}/page/{page}", func(w http.ResponseWriter, r *http.Request) {vars := mux.Vars(r)title := vars["title"]page := vars["page"]fmt.Fprintf(w, "You've requested the book: %s on page %s\n", title, page)})http.ListenAndServe(":9001", r)
}

4. 执行后的结果

在这里插入图片描述

5. gorilla/mux 好处

  • 实现了标准的http.Handler接口,所以可以与net/http标准库结合使用,非常轻量;
  • 可以根据请求的主机名、路径、路径前缀、协议、HTTP 首部、查询字符串和 HTTP 方法匹配处理器,还可以自定义匹配逻辑;
  • 可以在主机名、路径和请求参数中使用变量,还可以为之指定一个正则表达式;
  • 可以传入参数给指定的处理器让其构造出完整的 URL;
  • 支持路由分组,方便管理和维护。

相关文章:

  • Flutter 中的 AnimatedPhysicalModel 小部件:全面指南
  • 设计模式 15 Decorator Pattern 装饰器模式
  • 【LeetCode算法】第69题:x的平方根
  • linux mail命令及其历史
  • 免费开源人脸识别系统,支持RESTful API
  • 【Unity】常用的全局类
  • 02-结构型设计模式(共7种)
  • 油猴脚本使用cookie一般是某请求返回的setcookie,一般不是js生成的,直接请求拼接
  • C# 基础之字典——Dictionary(一)
  • QVariant用法(AI ChaptGPT)
  • 【设计模式深度剖析】【4】【创建型】【建造者模式】| 类比选购汽车的过程,加深理解
  • ubuntu设置root开机登录,允许root用户ssh远程登录
  • 大模型落地竞逐,云计算大厂“百舸争流”
  • 【MySQL精通之路】InnoDB(7)-锁和事务模型(2)-事务模型
  • MQTT 异常断开(一)
  • [PHP内核探索]PHP中的哈希表
  • 03Go 类型总结
  • Docker容器管理
  • Java知识点总结(JavaIO-打印流)
  • JS学习笔记——闭包
  • leetcode98. Validate Binary Search Tree
  • PHP的类修饰符与访问修饰符
  • vue总结
  • Web设计流程优化:网页效果图设计新思路
  • 创建一种深思熟虑的文化
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 工程优化暨babel升级小记
  • 开发基于以太坊智能合约的DApp
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端路由实现-history
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 详解NodeJs流之一
  • 学习使用ExpressJS 4.0中的新Router
  • 一个SAP顾问在美国的这些年
  • 责任链模式的两种实现
  • MyCAT水平分库
  • 翻译 | The Principles of OOD 面向对象设计原则
  • #{}和${}的区别?
  • #162 (Div. 2)
  • #include<初见C语言之指针(5)>
  • #数学建模# 线性规划问题的Matlab求解
  • $.each()与$(selector).each()
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (3)STL算法之搜索
  • (附源码)php投票系统 毕业设计 121500
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (七)理解angular中的module和injector,即依赖注入
  • (十)Flink Table API 和 SQL 基本概念
  • (算法)硬币问题
  • ***测试-HTTP方法
  • ***详解账号泄露:全球约1亿用户已泄露
  • .Net 4.0并行库实用性演练
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)