其他分享
首页 > 其他分享> > 手摸手,带你用Beego撸商城系列三(系统配置篇)

手摸手,带你用Beego撸商城系列三(系统配置篇)

作者:互联网

完整项目地址: go-shop-b2c

系列文章:

前言

这篇就来讲解,一下要启动项目的一些基础配置,比如通过 bee 工具生成 model 层,CORS配置,router配置,日志配置等

Bee 工具生成 model 层

bee 工具简介

bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。

bee 工具的安装

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

输入

bee version

如下图所示:

这里只能介绍 bee 根据 MySql 反向生成 api 应用

api 命令

bee api [appname] [-tables=""] [-driver=mysql] [-conn="root:<password>@tcp(127.0.0.1:3306)/test"]

可选命令介绍

输入如下命令:

bee api appname -tables="" -driver=mysql -conn="root:123456@tcp(127.0.0.1:3306)/go-shop-b2c"

目录结构如下:

项目和SQL文件

项目路由设置

前面我们已经创建了 beego 项目,而且我们也看到它已经运行起来了,那么是如何运行起来的呢?让我们从入口文件先分析起来吧:

package main

import (
    _ "quickstart/routers"
    "github.com/beego/beego/v2/server/web"
)

func main() {
    web.Run()
}

我们看到 main 函数是入口函数,但是我们知道 Go 的执行过程是如下图所示的方式:

这里我们就看到了我们引入了一个包 _ "quickstart/routers",这个包只引入执行了里面的 init 函数,那么让我们看看这个里面做了什么事情:

package routers

import (
	"appname/controllers"

	beego "github.com/beego/beego/v2/server/web"
)

func init() {
    ns := beego.NewNamespace("/v1",
    
        beego.NSNamespace("/ad",
            beego.NSInclude(
                &controllers.AdController{},
            ),
        ),
    )
	beego.AddNamespace(ns)
}

CORS 配置

api 项目通常都需要进行跨域配置,因为要方便前端本地调试,配置如下:

func corsInit() {
	beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
		// 可选参数"GET", "POST", "PUT", "DELETE", "OPTIONS" (*为所有)
		// 其中Options跨域复杂请求预检
		AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		// 指的是允许的Header的种类
		AllowHeaders: []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		// 公开的HTTP标头列表
		ExposeHeaders: []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		// 如果设置,则允许共享身份验证凭据,例如cookie
		AllowCredentials: true,
		// 指定可访问域名AllowOrigins
		AllowOrigins: []string{"*"},
	}))
}

日志配置

_ = logs.SetLogger("console")
logs.EnableFuncCallDepth(true)

标签:Beego,bee,Access,beego,api,Allow,手摸,系统配置
来源: https://www.cnblogs.com/alfred-y/p/14952807.html