使用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

image

问题: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{}。

posted on 2023-07-15 07:15  王景迁  阅读(17)  评论(0)    收藏  举报

导航