用 Go 语言编写 RESTful API

github.com/drone/routes 资源给出了一个简单的 REST 框架,因为 Go 语言提供了非常方便的内置 HTTP 框架,所以自己写一个这样的框架应该不困难,这里是我做的读书和试验笔记,留着做个参考。

下面是我摘录的部分代码:

package main
import (
    "fmt"
    "net/http"
    "github.com/drone/routes"
)
func getroute(w http.ResponseWriter, r *http.Request) {
    params := r.URL.Query()
    uid := params.Get(":uid")
    fmt.Fprintf(w, "you are get user %s", uid)
}

... ...
func run() {
    mux := routes.New()
    mux.Get("/user/:uid", getroute)
    mux.Put("/user/", putroute)
    http.Handle("/", mux)
    http.ListenAndServe(":8080", nil)
    fmt.Println("restful server is stopped !!!")
}
... ...

这里有一个特别之处需要提醒,REST 的命令参数传递有两种选择:

  • 一种是利用 “/” 传递,例如用户LiMIng的密码是123456,其登录URL可能是这种形式:“http://…./identification/LiMing/123456”。
  • 另一种是利用“?”分割参数,上面的例子 URL 可能会写成如下形式:“http://…./identification?name=LiMing&password=123456

    drone 这个框架采用的是第一种形式,感觉这种形式的工作效率可能要高一些,貌似 Go 的 HTTP 框架就是支持这种形式。如果有多个参数,可以按照以下格式编写:

mux.Get("/user/:uid/:password", getroute)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

许野平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值