前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >厚土Go学习笔记 | 35. web服务器实现动态路径

厚土Go学习笔记 | 35. web服务器实现动态路径

作者头像
李海彬
发布2018-03-19 14:43:18
6480
发布2018-03-19 14:43:18
举报
文章被收录于专栏:Golang语言社区Golang语言社区

有时候,我们希望给不同的用户有不同的服务路径。抛开那些高大上和深层次的原因,最浅显的,可以让用户觉得自己挺受重视。路径名称最好就是用户有关的字符串。我们这次以用户的名字来做个示例。

首先定义一个结构体 Person

代码语言:javascript
复制
type Person struct {
    Name    string
    Age     int
}

然后我们定义一下这个结构体的方法

代码语言:javascript
复制
func (ps *Person) sayCN(rw http.ResponseWriter, req *http.Request) 

剩下的就是 http.Handler 的实现了。因为要动态,所以路径那里,我们写成了这样

代码语言:javascript
复制
"/"+p.Name

已经有了整体的概念了吧?我们来看一下完整代码

代码语言:javascript
复制
package main

import (
    "net/http"
    "fmt"
)

type Person struct {
    Name    string
    Age     int
}

func (ps *Person) sayCN(rw http.ResponseWriter, req *http.Request)  {
    fmt.Fprintf(rw, "你好啊,%v,你%d岁了吗?\n", ps.Name, ps.Age)
}

func main() {
    p := &Person{"joel", 45}
    http.HandleFunc("/"+p.Name, p.sayCN)
    http.ListenAndServe(":4000", nil)
}

由于是 web 服务器应用,程序运行后,需要使用浏览器访问

http://192.168.1.105:4000/joel

地址中的 joel ,就是用户的名字了。你可以试着改改用户信息,看一下路径也会随之变化的。

当前代码的运行结果是

代码语言:javascript
复制
你好啊,joel,你45岁了吗?
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档