七课用golang封装自己web框架nux:第一课,学习golang路由 | go 技术论坛-江南app体育官方入口
前言
在学习golang的时候,看了极客兔兔的 后,感觉很受用,因此写下如下文章。
- 一是为了学习go的基础知识和http框架。
- 二是在使用框架时,觉得处理麻烦,不符合自己工作逻辑,干脆自己写一个框架。
- 三是课程比较简单,因为go1.22标准库已实现相关功能,所以文章不涉及算法和高复杂度操作,自认为比较适合golang初学者,本人也是个初学者,有什么讲不到位的请留言交流。
首先学习一下go1.22标准库中新增的http.servermux路由复用器
nux_test.go
package nux import ( "encoding/json" "log" "net/http" "testing" ) func testhttp(t *testing.t) { //新建路由复用器 mux := http.newservemux() //处理路由方法, mux.handlefunc("post /api/test/{name}", helloworld()) //启动路由服务 http.listenandserve(":8000", mux) } func helloworld() func(http.responsewriter, *http.request) { return func(w http.responsewriter, r *http.request) { //http标准库新增方法,{}可用pathvalue匹配路由 name := r.pathvalue("name") log.println("test 3") log.println(name) data := map[string]interface{}{ r.method: r.url.path, } w.header().set("content-type", "application/json") w.writeheader(http.statusok) encoder := json.newencoder(w) if err := encoder.encode(data); err != nil { http.error(w, err.error(), http.statusinternalservererror) } } }
访问
终端打印:
test 3 jack
前端显示:
{ "post": "/api/test/jack" }
本作品采用《cc 协议》,转载必须注明作者和本文链接