BeeGo快速使用指南

1. 安装与使用

1.1 安装Bee

go get github.com/astaxie/beego
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee

1.2 创建一个Bee项目

创建一个标准的 Bee 项目:

bee new myproject

创建一个 api 应用:

bee api apiproject

创建一个标准的 Bee 项目的目录结构:

├─conf
├─controllers
├─models
├─routers
├─static
│  ├─css
│  ├─img
│  └─js
├─tests
└─views

1.3 启动

在本地以开发模式启动应用:

$ bee run

2. Router

2.1 默认访问

mian.go 中引入路由系统:

// main.go
package main

import (
+   _ "Bee-Study/quickstart/routers"
	"github.com/astaxie/beego"
)

func main() {
	beego.Run()
}

首先在 Controller 层创建对应的 Controller 逻辑:

// controllers/default.go
package controllers

import (
	"github.com/astaxie/beego"
)

type MainController struct {
   
	beego.Controller
}

func (c *MainController) Get() {
   
	c.Ctx.WriteString("hello")
}

然后将路由文件创建于 routers 目录下:

// routers/router.go
package routers

import (
	"Bee-Study/quickstart/controllers"
	"github.com/astaxie/beego"
)

func init() {
   
    beego.Router("/", &controllers.MainController{
   })
}

当我们访问 localhost:prot/ 时就会触发 Controller 层的逻辑, 由于浏览器发送的是 GET 请求,所以就会触发 MainControllerGet() 方法,输出 hello

2.2 不同路由匹配不同方法

由于我们在 MainController 中定义了默认的 Get 方法,所以所有指向 MainController 的路由只要发送 Get 请求就会触发 MainController 的 Get() 方法。但通常我们都希望一个 Controller 对象可以处理多个路由请求,所以我们在调用 beego.Router 时可以传入第三个参数,即让当前匹配的路由可以在对应的请求方式下,触发 Controller 对象下的某一方法:

// router.go
beego.Router("/test", &controllers.MainController{
   }, "get:handleTest")
// controller.go
func (c *MainController) handleTest(){
   
    // do something
}

3. Controller

3.1 创建一个 Controller

Controller 主要负责逻辑控制,通过上一节我们已经创建除了一个简单的 Controller。Controller 不需要在 main.go 中挂载,只需要在对应的 Router 下使用对应的 Controller 即可。

创建一个 Controller 我们要继承一个 beego.Controller 对象:

type MainController struct {
   
	beego.Controller
}

之后我们可以复写其 Get() 方法:

func (c *MainController) 

你可能感兴趣的:(GoLang)