Beego走起(一) 初步认识

Beego是一个开源的web/api server框架,使用目前流行的go语言,其基本操作,请访问 [ beego]

这里主要介绍一下自己在开发中遇到的一些问题。

使用bee 工具创建web server 和 api server

本人创建了hello和helloapi 两个server,主要是要查看有什么不同?
- 目录上有一些不同,api 没有.tpl,但是多了models
- 代码中,api 使用了router的注释路由,(太阳啊,还不会呢。。。)

编译hello,运行,127.0.0.1:8080, 可以打开我们已经服务器了,是不是很爽呢,哈哈哈!!!

编译helloapi,运行,这里再次鄙视一下自己不会设置路由,本人自己修改了一下路由,直接http://127.0.0.1:8080/object/hjkhsbnmn123,就可以返回json的数据,so easy!!!

但是为什么要两个服务器呢?很2b的有木有。。。

这是本人经过一些抓包和代码比对,发现hello 和 helloapi 两个server 原理和代码几乎是一模一样,但是为什么在手机上直接用http get 请求就会出错,web 上就没有呢? 这里再次体现我对网络上面知识的匮乏。

经过抓包,在手机上发送请求,需要返回JavaScript object Notation:application/json 的son块,手机上才能返回成功。而web 上返回Line-based text data:application/json 也是可以的。

说到这里大家就应该知道怎么做了,只需要在hello 中也返回JavaScript object Notation:application/json 块就行。

修改hello controllers/default.go,修改Get方法,例子如下:

type Object struct {
    ObjectId   string
    Score      int64
    PlayerName string
}

fun (c *MainController) Get() {
    c.Data["json"] = &Object{"gaga", 20, "taiyanga"}
    c.ServerJSON()
}  

想上面代码修改就可以在手机上使用http get 方法获取到json了

这样我们就可以实现在一个server 上既可以web请求,又可以手机请求了,不需要在beego上创建两个几乎同样功能的服务器了。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐