34|业务开发(下):问答业务开发
叶剑峰
该思维导图由 AI 生成,仅供参考
你好,我是轩脉刃。
上节课我们已经完成了问答业务的一部分开发,主要是两部分,前后端接口设计,把接口的输出、输入以 swagger-UI 的形式表现;以及后端问答服务的接口设计,一共 14 个接口。这节课我们就继续完成问答的业务开发。
还是先划一下今天的重点,我们先使用前面定义的问答服务协议接口,来完成业务模块的接口开发,验证问答服务的协议接口是否满足需求,然后再实现我们的问答服务协议。不过因为这次问答服务实现的接口比较多,0 bug 有一定难度,所以会为问答服务写一下单元测试,希望你重点掌握。
最后,我们实现前端的 Vue 页面,同样,由于前端页面的编写不是课程重点,还是挑重点的实现难点解说一下。
下面开始我们今天的实战吧。
开发模块接口
上一节课定义好了问答服务的 14 个接口,可以使用这 14 个接口来实现业务模块了。我们的业务模块接口有七个接口需要开发:
问题创建接口 /question/create
问题列表接口 /question/list
问题详情接口 /question/detail
问题删除接口 /question/delete
更新问题接口 /question/edit
回答创建接口 /answer/create
回答删除接口 /answer/delete
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了问答业务的开发过程,重点讲解了使用定义好的问答服务协议接口完成业务模块的接口开发,并进行单元测试。文章首先介绍了PostAnswer接口的实现,通过事务函数Transaction封装了多次数据库操作,确保数据一致性。接着详细讲解了AnswersLoadAuthor方法的实现,使用第三方库对数组进行特殊操作,以及使用Preload加载回答作者字段的方式。此外,还介绍了单元测试的编写方式,通过初始化服务容器和模拟数据库操作来进行测试。 在模拟数据库操作方面,文章介绍了使用SQLite驱动并将数据库保存在内存中来模拟MySQL的操作,避免了搭建测试MySQL数据库和编写mock方法的繁琐操作。同时,推荐了goconvey作为单元测试库,提供丰富的断言和可视化工具界面,极大地简化了单元测试的编写和执行过程。 在前端Vue开发方面,文章重点介绍了富文本编辑器的使用,使用了第三方组件toast-ui-editor来实现编辑和展示功能。通过引入组件库并在页面组件中进行引入,文章展示了如何在页面中使用富文本编辑器,并给出了具体的代码示例。 总的来说,本文通过实际开发案例,详细介绍了问答模块的前后端开发流程,以及在开发过程中遇到的一些特殊情况和解决方案,对于具体开发问答业务的开发人员具有很高的参考价值。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
《手把手带你写一个 Web 框架》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- River大赞大赞,go wed框架从0到1都全了,就像一本参考书,以后遇到问题可以常回来看看2022-05-282
- taoistgithub.com/pkg/errors 已经归档不再维护了,可以用 gitlab.com/tozd/go/errors 代替2024-02-19归属地:山东1
- Charlesqa中的单元测试使用orm.WithGormConfig方式设置数据库外键约束不生效时,代码报错。不知道什么原因2022-05-061
- Charles第三方 error 库,错误信息会带上堆栈信息,更容易定位问题2022-04-24
收起评论