Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yangfei4913438/goapiserver
A golang api server demo that contains usage of Redis and MySQL.
https://github.com/yangfei4913438/goapiserver
api-server beego golang language mysql redis
Last synced: 26 days ago
JSON representation
A golang api server demo that contains usage of Redis and MySQL.
- Host: GitHub
- URL: https://github.com/yangfei4913438/goapiserver
- Owner: yangfei4913438
- License: apache-2.0
- Created: 2019-01-07T01:54:10.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-12-13T14:01:18.000Z (about 5 years ago)
- Last Synced: 2024-06-22T16:58:27.294Z (7 months ago)
- Topics: api-server, beego, golang, language, mysql, redis
- Language: Go
- Homepage:
- Size: 85 KB
- Stars: 26
- Watchers: 3
- Forks: 10
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go Demo API Server
| 版本号 | 说明 | 更新日期 | 更新者 |
| ----- | --- | ---------- | ---- |
| V1.0 | 初版 | 2018.12.30 | 杨飞 |
| V1.1 | 增加对 websocket 服务的支持 | 2019.05.09 | 杨飞 |
| V1.2 | 增加对 restful 请求支持 | 2019.06.25 | 杨飞 |- [项目介绍](#项目介绍)
- [项目操作](#项目操作)
- [HTTP头部设置要求](#HTTP头部设置要求)
- [新增用户](#新增用户)
- [查询用户](#查询用户)
- [查询用户-分页](#查询用户-分页)
- [修改用户](#修改用户)
- [删除用户](#删除用户)
- [其他](#其他)## 项目介绍
为了更好了整合本人的技术栈,也为了能够帮助到大家学习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 传参的方式来传递
```bash
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
```json
{
"name": "test",
"age": 18,
"email": "[email protected]"
}
```- 响应
| 参数 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------- |
| code | String | Y | 状态码 |
| message | Int | Y | 状态信息 |- 响应demo
```json
{
"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
```json
{
"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
```json
{
"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
```json
{
"id": 1,
"name": "fei",
"age": 26
}
```- 响应
| 参数 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------- |
| code | String | Y | 状态码 |
| message | Int | Y | 状态信息 |- 响应demo
```json
{
"code": 0,
"message": "用户更新成功!"
}
```### 删除用户
- 方法和路由
```
DELETE 127.0.0.1:7777/test/api/v1/user
```- 请求参数
| 参数 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------ |
| id | Int | Y | 用户ID |- 请求参数demo
```json
{
"id": 1
}
```- 响应
| 参数 | 类型 | 必填 | 说明 |
| ---- | ------ | ---- | ------- |
| code | String | Y | 状态码 |
| message | Int | Y | 状态信息 |- 响应demo
```json
{
"code": 0,
"message": "用户删除成功!"
}
```## 其他
更多内容,陆续添加中,敬请期待。。。