{"id":22994241,"url":"https://github.com/yangfei4913438/goapiserver","last_synced_at":"2025-08-13T22:31:31.020Z","repository":{"id":112524704,"uuid":"164364385","full_name":"yangfei4913438/goApiServer","owner":"yangfei4913438","description":"A golang api server demo that contains usage of Redis and MySQL.","archived":false,"fork":false,"pushed_at":"2019-12-13T14:01:18.000Z","size":87,"stargazers_count":26,"open_issues_count":2,"forks_count":10,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-30T15:51:45.377Z","etag":null,"topics":["api-server","beego","golang","language","mysql","redis"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yangfei4913438.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-01-07T01:54:10.000Z","updated_at":"2024-01-26T09:34:05.000Z","dependencies_parsed_at":"2023-06-06T01:15:45.049Z","dependency_job_id":null,"html_url":"https://github.com/yangfei4913438/goApiServer","commit_stats":null,"previous_names":["yangfei4913438/testapi","yangfei4913438/go-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/yangfei4913438/goApiServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangfei4913438%2FgoApiServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangfei4913438%2FgoApiServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangfei4913438%2FgoApiServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangfei4913438%2FgoApiServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yangfei4913438","download_url":"https://codeload.github.com/yangfei4913438/goApiServer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yangfei4913438%2FgoApiServer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270329099,"owners_count":24565770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-server","beego","golang","language","mysql","redis"],"created_at":"2024-12-15T05:17:36.263Z","updated_at":"2025-08-13T22:31:30.733Z","avatar_url":"https://github.com/yangfei4913438.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Demo API Server\n\n| 版本号 | 说明 | 更新日期 | 更新者 |\n| ----- | --- | ---------- | ---- |\n|  V1.0 | 初版 | 2018.12.30 | 杨飞 |\n|  V1.1 | 增加对 websocket 服务的支持 | 2019.05.09 | 杨飞 |\n|  V1.2 | 增加对 restful 请求支持 | 2019.06.25 | 杨飞 |\n\n- [项目介绍](#项目介绍)\n- [项目操作](#项目操作)\n  - [HTTP头部设置要求](#HTTP头部设置要求)\n  - [新增用户](#新增用户)\n  - [查询用户](#查询用户)\n  - [查询用户-分页](#查询用户-分页)\n  - [修改用户](#修改用户)\n  - [删除用户](#删除用户)\n- [其他](#其他)\n\n## 项目介绍\n\n为了更好了整合本人的技术栈，也为了能够帮助到大家学习go语言，尽快掌握go语言的工程实践。\n\n我通过一个简单的业务demo，也就是用户信息的增删查改，来实现一个golang后端API应用。\n\n主要涵盖了下面这些技术点：\n* 路由\n* 过滤器\n* 日志\n* 静态配置文件\n* 控制器\n* 模型\n* redis缓存\n* MySQL数据库\n* 多国语言处理\n* websocket服务\n* 登录登出功能\n* restful请求\n\n以后可能会增加更多的技术内容进来，比如etcd, nsq等内容，也欢迎大家一起来完善本项目，造福更多的新人朋友。\n\n\u003e **请注意:** websocket 不支持 6666 端口，请不要使用 6666 作为服务器的端口!!!\n\n## 项目操作\n\n### HTTP头部设置要求\n\n| key | value | 必填 | 说明 |\n| --- | ----- | ---- | --- |\n| x-access-token | test | Y | token，鉴别用户权限。因为是demo, 所以这里是写死的。 |\n| accept-language | zh-cn | N | 服务端有多语言支持的时候，会采用这里的语言返回数据。 |\n\n### websocket 请求url\n\n- 校验令牌，需要通过 url 传参的方式来传递\n\n```bash\nws://127.0.0.1:7777/ws/hi?token=test\n```\n\n### 数据库表结构发生了变化，接口文档作废，待完善。。。\n\n### 新增用户\n\n- 方法和路由\n\n```\nPOST 127.0.0.1:7777/test/api/v1/user\n```\n\n- 请求参数\n\n| 参数   | 类型   | 必填  | 说明    |\n| ----  | ------ | ---- | ------- |\n| name  | String | N    | 用户姓名 |\n| age   | Int    | N    | 用户年龄 |\n| email | String | N    | 电子邮件 |\n\n- 请求参数demo\n\n```json\n{\n\t\"name\": \"test\",\n\t\"age\": 18,\n\t\"email\": \"test@163.com\"\n}\n```\n\n- 响应\n\n|   参数   | 类型   | 必填  | 说明    |\n|   ----  | ------ | ---- | ------- |\n| code    | String | Y    | 状态码   |\n| message | Int    | Y    | 状态信息 |\n\n- 响应demo\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"用户添加成功!\"\n}\n```\n\n### 查询用户\n\n- 方法和路由\n\n```\nGET 127.0.0.1:7777/test/api/v1/user?id=1\n```\n\n- 请求参数\n\n| 参数 | 类型 | 必填  | 说明   |\n| --- | ---- | ---- | -----  |\n| id  |  int |  Y   | 数据库中生成的用户ID字段 |\n\n- 响应\n\n| 参数   | 类型   | 必填  | 说明    |\n| ----  | ------ | ---- | ------  |\n| id    | Int    | Y    | 用户ID  |\n| name  | String | Y    | 用户姓名 |\n| age   | Int    | Y    | 用户年龄 |\n| email | String | Y    | 电子邮件 |\n\n- 响应demo\n\n```json\n{\n  \"id\": 1,\n  \"name\": \"test\",\n  \"age\": 18,\n  \"email\": \"test@163.com\"\n}\n```\n\n### 查询用户-分页\n\n- 方法和路由\n\n```\nGET 127.0.0.1:7777/test/api/v1/users?page_num=1\u0026page_size=5\n```\n\n- 请求参数\n\n| 参数 | 类型 | 必填  | 说明   |\n| --- | ---- | ---- | -----  |\n| page_num  |  int |  Y   | 第几页 |\n| page_size  |  int |  Y   | 每页有多少条记录 |\n\n- 响应\n\n| 参数        | 类型   | 必填  | 说明    |\n| ---------  | ------ | ---- | ------  |\n| total_num  | Int    | Y    | 一共返回了多少条记录  |\n| list       | []User | Y    | 返回用户列表，如果没有记录返回 null |\n\n- 响应demo\n\n```json\n{\n  \"total_num\": 0,\n  \"list\": null\n}\n```\n\n### 修改用户\n\n- 方法和路由\n\n```\nPUT 127.0.0.1:7777/test/api/v1/user\n```\n\n- 请求参数\n\n| 参数   | 类型   | 必填  | 说明    |\n| ----  | ------ | ---- | ------- |\n| id    | Int    | Y    | 用户ID  |\n| name  | String | N    | 用户姓名 |\n| age   | Int    | N    | 用户年龄 |\n| email | String | N    | 电子邮件 |\n\n- 请求参数demo\n\n```json\n{\n  \"id\": 1,\n  \"name\": \"fei\",\n  \"age\": 26\n}\n```\n\n- 响应\n\n|   参数   | 类型   | 必填  | 说明    |\n|   ----  | ------ | ---- | ------- |\n| code    | String | Y    | 状态码   |\n| message | Int    | Y    | 状态信息 |\n\n- 响应demo\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"用户更新成功!\"\n}\n```\n\n### 删除用户\n\n- 方法和路由\n\n```\nDELETE 127.0.0.1:7777/test/api/v1/user\n```\n\n- 请求参数\n\n| 参数   | 类型   | 必填  | 说明   |\n| ----  | ------ | ---- | ------ |\n| id    | Int    | Y    | 用户ID |\n\n- 请求参数demo\n\n```json\n{\n  \"id\": 1\n}\n```\n\n- 响应\n\n|   参数   | 类型   | 必填  | 说明    |\n|   ----  | ------ | ---- | ------- |\n| code    | String | Y    | 状态码   |\n| message | Int    | Y    | 状态信息 |\n\n- 响应demo\n\n```json\n{\n  \"code\": 0,\n  \"message\": \"用户删除成功!\"\n}\n```\n\n## 其他\n\n更多内容，陆续添加中，敬请期待。。。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyangfei4913438%2Fgoapiserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyangfei4913438%2Fgoapiserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyangfei4913438%2Fgoapiserver/lists"}