使用beego
安装beego和bee
go get github.com/astaxie/beego
go get github.com/beego/bee
自己的用户变量 -> Path -> 添加GOPATH路径\bin(bee.exe文件位置)
确认bee命令全局可用:bee version
新建API项目并运行
bee api beego-test
cd beego-test
bee run
应用部署
# 修改模式
conf/app.conf下面设置
runmode = prod
# 生成二进制main
GOOS=linux GOARCH=amd64 go build -o main main.go
# 创建目录并拷贝文件
mkdir -p /opt/app/beepkg
cp main /opt/app/beepkg
cp -fr conf /opt/app/beepkg
# 独立部署
nohup ./main &
配置路由
package routers
import (
"beego-test/controllers"
"github.com/astaxie/beego"
)
func init() {
ns := beego.NewNamespace("/v1",
beego.NSNamespace("/object",
beego.NSRouter("/a", &controllers.ObjectController{}, "get:Get"),
),
)
beego.AddNamespace(ns)
}
package controllers
import (
"github.com/astaxie/beego"
)
type ObjectController struct {
beego.Controller
}
func (o *ObjectController) Get() {
o.Data["json"] = map[string]string{"ObjectId": "a"}
o.ServeJSON()
}
使用POST方法时不行。
curl -X GET http://127.0.0.1:8080/v1/object/a

问题:json: unsupported type: map[interface {}]string
func (o *ObjectController) Get() {
o.Data["json"] = map[interface{}]string{"ObjectId": "a"}
o.ServeJSON()
}
beego返回的结果是Data["json"],类型是map[interface{}]string,但是json key必须是数字或者字符串,类型改成map[string]interface{}。
浙公网安备 33010602011771号