Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
docs: modify readme.md
A tiny change, make the document be better.
  • Loading branch information
witt authored Jun 22, 2019
commit 8478b260e774e07b4def2499ca29552a4ee2b10b
50 changes: 25 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,45 @@
# Golang API范例项目
# Golang API 范例项目

## 目的

本项目采用了一系列Golang中比较流行的组件,可以以本项目为基础快速搭建Restful Web API
本项目采用了一系列 Golang 中比较流行的组件,可以以本项目为基础快速搭建 Restful Web API

## 特色

本项目已经整合了许多开发API所必要的组件
本项目已经整合了许多开发 API 所必要的组件

1. Gin: 轻量级Web框架,自称路由速度是golang最快的
2. GORM: ORM工具。本项目需要配合Mysql使用
3. Gin-Session: Gin框架提供的Session操作工具
4. Go-Redis: Golang Redis客户端
1. Gin: 轻量级 Web 框架,自称路由速度是 Golang 最快的
2. GORM: ORM 工具。本项目需要配合Mysql使用
3. Gin-Session: Gin 框架提供的 Session 操作工具
4. Go-Redis: Golang Redis 客户端
5. godotenv: 开发环境下的环境变量工具,方便使用环境变量
6. Gin-Cors: Gin框架提供的跨域中间件
7. 自行实现了国际化i18n的一些基本功能
8. 本项目是使用基于cookie实现的session来保存登录状态的,如果需要可以自行修改为token验证
6. Gin-Cors: Gin 框架提供的跨域中间件
7. 自行实现了国际化 i18n 的一些基本功能
8. 本项目是使用基于 Cookie 实现的 Session 来保存登录状态的,如果需要可以自行修改为 token 验证


本项目已经预先实现了一些常用的代码方便参考和复用:

1. 创建了用户模型
2. 实现了```/api/v1/user/register```用户注册接口
3. 实现了```/api/v1/user/login```用户登录接口
4. 实现了```/api/v1/user/me```用户资料接口(需要登录后获取session)
5. 实现了```/api/v1/user/logout```用户登出接口(需要登录后获取session)
2. 实现了 `/api/v1/user/register` 用户注册接口
3. 实现了 `/api/v1/user/login` 用户登录接口
4. 实现了 `/api/v1/user/me` 用户资料接口(需要登录后获取 Session)
5. 实现了 `/api/v1/user/logout` 用户登出接口(需要登录后获取 Session)

本项目已经预先创建了一系列文件夹划分出下列模块:

1. api文件夹就是MVC框架的controller,负责协调各部件完成任务
2. model文件夹负责存储数据库模型和数据库操作相关的代码
3. service负责处理比较复杂的业务,把业务代码模型化可以有效提高业务代码的质量(比如用户注册,充值,下单等)
4. serializer储存通用的json模型,把model得到的数据库模型转换成api需要的json对象
5. cache负责redis缓存相关的代码
6. auth权限控制文件夹
7. util一些通用的小工具
8. conf放一些静态存放的配置文件,其中locales内放置翻译相关的配置文件
1. `api` 文件夹就是MVC框架的 Controller,负责协调各部件完成任务
2. `model` 文件夹负责存储数据库模型和数据库操作相关的代码
3. `service` 负责处理比较复杂的业务,把业务代码模型化可以有效提高业务代码的质量(比如用户注册,充值,下单等)
4. `serializer` 储存通用的 JSON 模型,把 `model` 得到的数据库模型转换成 API 需要的 JSON 对象
5. `cache` 负责 Redis 缓存相关的代码
6. `auth` 权限控制文件夹
7. `util` 一些通用的小工具
8. `conf` 放一些静态存放的配置文件,其中 `locales` 内放置翻译相关的配置文件

## Godotenv

项目在启动的时候依赖以下环境变量,但是在也可以在项目根目录创建.env文件设置环境变量便于使用(建议开发环境使用)
项目在启动的时候依赖以下环境变量,但是在也可以在项目根目录创建 `.env` 文件设置环境变量便于使用(建议开发环境使用

```shell
MYSQL_DSN="db_user:db_password@/db_name?charset=utf8&parseTime=True&loc=Local" # Mysql连接地址
Expand All @@ -52,7 +52,7 @@ GIN_MODE="debug"

## Go 依赖

本项目使用govendor管理依赖
本项目使用 `govendor` 管理依赖

```shell
go get -u github.com/kardianos/govendor
Expand All @@ -65,4 +65,4 @@ govendor init
go run main.go
```

项目运行后启动在3000端口(可以修改,参考gin文档)
项目运行后启动在3000端口(可以修改,参考gin文档)