## 简介

因为工作上的需求,由于两个项目都是管理类型的,故在项目开始之处就考虑做一个能够快速开发应用的框架,考虑到时间紧,任务重,同时市面上很多优秀的基于golang的web框架,综合考虑,不重复造轮子,站在巨人的肩膀上,使用了golang的web框架gin来搭建基础框架,在该框架中使用了很多由于的模块,在此感谢作者的付出。

因为是写一个系列文章, 故文章会从零开始来搭建这个框架,大部分代码会从原有的项目copy过来。主要目的记录该框架是如何搭建的,以及在上面如果快速开发一个后台应用。

gin框架地址:[https://github.com/gin-gonic/gin](https://github.com/gin-gonic/gin)

## 开发环境

* PC: Mac

* IDE: Goland 2018.3 EAP

* GO:go1.10 darwin/amd64

* 环境变量`GOPATH:/Users/cloudy/Documents/go` 

* 包依赖管理:govendor

## 新建项目

### 新建项目

项目名称为base-framework,如果其他项目使用或者修改项目名称,需要修改代码中包引入涉及到的项目名,可以批量替换。

![](/assets/01-create-project.png)

### 依赖初始化

项目目录下执行`govendor init`,在项目目录下将会出现`vendor`文件夹

**后续所说的执行命令,默认在Goland IDE的Terminal下**

添加项目需要使用到的包,使用`govendor fetch`命令将会获得最新的包,使用命令将会`govendor add` 使用本地的包

后面章节若使用了新的包将会更新下面的目录

```

govendor fetch github.com/gin-gonic/gin

govendor fetch gopkg.in/yaml.v2

```

### 创建main文件

需要将package名改为main里面的内容为

```

package main

import "fmt"

func main() {

    fmt.Println("base framework")

}

```

### 配置文件

创建配置文件夹`conf`,后期里面将包含`config.yml` https使用的证书,jwt使用的公私钥,以及初始化数据文件

```

cloudydeMacBook-Pro:base-framework cloudy$ tree

.

├── conf

│  ├── config.yml

│  ├── https

│  └── jwt

├── main.go

└── vendor

```