社区话题页面 | 青训营笔记
1.项目需求
- 展示话题(标题,文字描述)和回帖列表
- 暂不考虑前端页面实现,仅仅实现一个本地web服务
- 话题和回帖数据用文件存储
2.分析设计
2.1 模型设计
考虑到正常的社区功能,至少应该有三个模型:用户,话题,帖子
具体如下:
2.2功能分析
- 首先应当要有基础的添加功能,即注册用户,发起话题,回复发帖,便于进行测试
- 然后由于要从文件读取数据,则应当有文件读取和写入功能。为防止数据丢失,应该在成功添加后,及时写入到文件存储。
- 最后就是获取话题页面的功能,先要展示话题与发起者信息,然后展示所有回帖和回帖人信息
2.3项目分层
结合以上分析,并参照PPT和github上的示例代码,我将本次项目分为如下几层:
API介绍可以看此处链接:Go语言:RESTful API 服务,急速入门! - 掘金 (juejin.cn)
3.功能实现
3.1 添加功能
(1)注册用户
Router/Router.go
Cotroller/Register.go
Service/Register.go
Repository/User.go
Gin解析数据的方法可以戳此处了解:Gin框架获取请求参数的各种方式详解 - 掘金 (juejin.cn)
(2)发起话题
Router/Router.go
Controller/PublishTopic.go
Service/PublishTopic.go
Repository/Topic.go
(3)回复发帖
Router/Router.go
Controller/PublishPost.go
Service/PublishPost.go
Repository/Post.go
3.2 文件处理功能
(1)文件读取
Repository/Init.go
(2)文件写入
Repository/Store.go
3.3 获取话题页面功能
Router/Router.go
Controller/QueryTopicInfo.go
Service/QueryTopicInfo.go
4 效果呈现:
(1)注册用户:
(2)发起话题:
(3)回复发帖:
(4)获取话题页面:
本项目采用Apifox进行测试,相关教程可看官方文档:快速上手 | Apifox 帮助文档
5 小结:
作为一名Go语言初级学习者,本次项目实践,使我对于项目的分析设计以及Gin框架的使用进行了熟悉,在代码的规范上也有了一定经验,算是小有成长,希望能继续保持。本项目源码已上传至 github ,欢迎各位批评指正。