Skip to content

A golang api server demo that contains usage of Redis and MySQL.

License

Notifications You must be signed in to change notification settings

yangfei4913438/goApiServer

Repository files navigation

Go Demo API Server

版本号 说明 更新日期 更新者
V1.0 初版 2018.12.30 杨飞
V1.1 增加对 websocket 服务的支持 2019.05.09 杨飞
V1.2 增加对 restful 请求支持 2019.06.25 杨飞

项目介绍

为了更好了整合本人的技术栈,也为了能够帮助到大家学习go语言,尽快掌握go语言的工程实践。

我通过一个简单的业务demo,也就是用户信息的增删查改,来实现一个golang后端API应用。

主要涵盖了下面这些技术点:

  • 路由
  • 过滤器
  • 日志
  • 静态配置文件
  • 控制器
  • 模型
  • redis缓存
  • MySQL数据库
  • 多国语言处理
  • websocket服务
  • 登录登出功能
  • restful请求

以后可能会增加更多的技术内容进来,比如etcd, nsq等内容,也欢迎大家一起来完善本项目,造福更多的新人朋友。

请注意: websocket 不支持 6666 端口,请不要使用 6666 作为服务器的端口!!!

项目操作

HTTP头部设置要求

key value 必填 说明
x-access-token test Y token,鉴别用户权限。因为是demo, 所以这里是写死的。
accept-language zh-cn N 服务端有多语言支持的时候,会采用这里的语言返回数据。

websocket 请求url

  • 校验令牌,需要通过 url 传参的方式来传递
ws://127.0.0.1:7777/ws/hi?token=test

数据库表结构发生了变化,接口文档作废,待完善。。。

新增用户

  • 方法和路由
POST 127.0.0.1:7777/test/api/v1/user
  • 请求参数
参数 类型 必填 说明
name String N 用户姓名
age Int N 用户年龄
email String N 电子邮件
  • 请求参数demo
{
	"name": "test",
	"age": 18,
	"email": "[email protected]"
}
  • 响应
参数 类型 必填 说明
code String Y 状态码
message Int Y 状态信息
  • 响应demo
{
  "code": 0,
  "message": "用户添加成功!"
}

查询用户

  • 方法和路由
GET 127.0.0.1:7777/test/api/v1/user?id=1
  • 请求参数
参数 类型 必填 说明
id int Y 数据库中生成的用户ID字段
  • 响应
参数 类型 必填 说明
id Int Y 用户ID
name String Y 用户姓名
age Int Y 用户年龄
email String Y 电子邮件
  • 响应demo
{
  "id": 1,
  "name": "test",
  "age": 18,
  "email": "[email protected]"
}

查询用户-分页

  • 方法和路由
GET 127.0.0.1:7777/test/api/v1/users?page_num=1&page_size=5
  • 请求参数
参数 类型 必填 说明
page_num int Y 第几页
page_size int Y 每页有多少条记录
  • 响应
参数 类型 必填 说明
total_num Int Y 一共返回了多少条记录
list []User Y 返回用户列表,如果没有记录返回 null
  • 响应demo
{
  "total_num": 0,
  "list": null
}

修改用户

  • 方法和路由
PUT 127.0.0.1:7777/test/api/v1/user
  • 请求参数
参数 类型 必填 说明
id Int Y 用户ID
name String N 用户姓名
age Int N 用户年龄
email String N 电子邮件
  • 请求参数demo
{
  "id": 1,
  "name": "fei",
  "age": 26
}
  • 响应
参数 类型 必填 说明
code String Y 状态码
message Int Y 状态信息
  • 响应demo
{
  "code": 0,
  "message": "用户更新成功!"
}

删除用户

  • 方法和路由
DELETE 127.0.0.1:7777/test/api/v1/user
  • 请求参数
参数 类型 必填 说明
id Int Y 用户ID
  • 请求参数demo
{
  "id": 1
}
  • 响应
参数 类型 必填 说明
code String Y 状态码
message Int Y 状态信息
  • 响应demo
{
  "code": 0,
  "message": "用户删除成功!"
}

其他

更多内容,陆续添加中,敬请期待。。。

About

A golang api server demo that contains usage of Redis and MySQL.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published