Go语言基础 —— (16)Web服务
»
    寻找Go语言的Web服务器还得用百度。百度广告推荐课程最多的,前几个讲的Go语言Web框架,基本上就是最为流行、最为稳定、最为好用的。

    在这里,我选用了beego。
    
    敢于基于Go语言开发Web服务的原因,是因为就像gcc一样,Go语言的编译环境开源,所以,任何人在需要的时候可以给自己的Go语言编译器打补丁。同样,beego服务器也开源。

    以下讲Go语言Web框架beego

    beego是一个Web框架,它集成了脚手架工具:

    1、安装beego环境(go语言环境1.17之后的版本):
    go install github.com/beego/bee/v2@latest

    2、新建beego项目:
    bee new gameServer

    3、打开IDE,开发功能代码:
    新建beego工程后,bee已经给你建好了包结构:controllers是控制器,负责处理请求;views是界面模板,负责呈现页面html代码;static是静态资源文件,包括css、img和js;models用于存放自己定义的业务模型。
    
    bee新建的工程代码中包含了一个简单的例子:处理url路径为“/”的Get请求。
    其中,url路径的配置在routers文件夹的router.go中。也就是所有的请求路径都需要列举在这个router.go文件中,代码总负责一目了然。
    在这个文件中beego.Router()方法可以带第三个参数,也就是这个路径支持的请求方式,比如Get、Post等等。配置第三个参数后,beego会依据前端的请求方式不同调用Controller中的不同函数。

    在每个Controller中,可以暴露给前端请求的方法有以下几种:
    Get()
    Post()
    Delete()
    Put()
    Head()
    Patch()
    Options()
    Trace()

    在Controller中获取参数的方法有以下几种:
    // 获取URL参数:
    id := c.GetString(":id")
    // 获取表单数据字段:
    username := c.GetString("username")
    password := c.GetString("password")
    // 获取Form表单提交的数据对象:
    c.Ctx.Input.Bind(&user, "form")
    // 获取application/json的请求数据:
    var user User
    json.Unmarshal(c.Ctx.Input.RequestBody, &user)
    // 获取method="post",enctype="multipart/form-data"的文件数据
    file, header, err := c.GetFile("file")

    在Controller的返回值中,可以设定c.TplName="index.tpl"来指定显示模板,也可以使用c.ServerJson()来直接返回json数据。
    在c.TplName指定的模板文件中,使用“{{.Website}}”,其中的"Website"对应Controller中设定值时用的key,即:c.Data["Website"] = "beego.vip"中的"Website"。
    
    好了,beego的Web服务器开发就这么简单,有了这些概念基本上就可以开发逻辑代码了。

    
                        
«
——张人杰·www.v-signon.com学习者共勉
返回上一页
工业和信息化部备案管理系统网站 京ICP备19038994号-2
个人作品网站:www.up-task.com 主办单位:个人 English