在线问题反馈模块实战(六):接口文档定义

223 阅读9分钟

👨‍🎓作者:bug菌
✏️博客:CSDN掘金infoQ51CTO
🎉简介:CSDN博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者,全网合计8w粉+,对一切技术感兴趣,重心偏Java方向;硬核公众号「 猿圈奇妙屋」,欢迎小伙伴们的加入,一起秃头,一起变强。
..
✍️温馨提醒:本文字数:1999字, 阅读完需:约 5 分钟

嗨,家人们,我是bug菌呀,我又来啦。今天我们来聊点什么咧,OK,接着为大家更《springboot零基础入门教学》系列文章吧。希望能帮助更多的初学者们快速入门!

小伙伴们在批阅文章的过程中如果觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

一、前言🔥

环境说明:Windows10 + Idea2021.3.2 + Jdk1.8 + SpringBoot 2.3.1.RELEASE

       接下来的这几期,bug菌想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着呢,想分享一下自己是如何面对临时需求并制定整个开发周期,其中包括从梳理业务到创建业务表再到实现业务逻辑形成闭环再到与前端对接,其中会穿插一些业务拓展及功能性拓展,这一条龙流程在线与大家一起见证,分享给刚入门的小伙伴,希望对你们有所帮助。

环境说明:idea2019.3 + springboot2.3.1.REALSE + mybati-plus3.2.0 + mysql5.6 + jdk1.8

       若小伙伴们在批阅文章的过程中觉得文章对您有一丝丝帮助,还请别吝啬您手里的赞呀,大胆的把文章点亮👍吧,您的点赞三连(收藏⭐️+关注👨‍🎓+留言📃)就是对bug菌我创作道路上最好的鼓励与支持😘。时光不弃🏃🏻‍♀️,创作不停💕,加油☘️

二、正文🔥

​       对于前几期啊,我们已经对表创建及字段确定,对应实体类等文件也都准备妥当了。接下来,就到了该模块的代码实操环节啦,准备了这么久,不就为了这一刻嘛。

       所以接下来,咱们先来分析下这个模块具体需要哪些接口,先预先自己定义好,再跟前端小伙伴对接一下。那我带着你们一起分析分析啊,因为写这个模块,完完全全是带着刚入门不久的小伙伴怎么应对在项目中应对临时增加的需求到底该怎么处理,怎么有条不紊的进行业务穿插,如果你是从第一期开始看我,那我保你对于该困惑会有一个明确的构思存留在脑海中。

       首先,应对额外增加的需求,而且是一整个小模块算闭环模块吧,虽然算不上项目的核心业务,但也是系统不可或缺的一部分组成,尽量做好保证低耦。

如下是我分析出大致所需要的接口列表。

  1. 分页查询接口(分页参数、其他字段等分页条件)。
  2. 新增反馈问题保存接口(涉及普通字段及多图片需一同保存)。
  3. 反馈编辑接口(目的是给解决人用的,可以对该需求进行一个是否解决、给与解决或其他解决状态,再次就是反馈该问题/需求解决结论是什么,并告知提出者)
  4. 反馈问题关闭接口(对于已解决的问题或已给与实现的需求,可以进行关闭)
  5. 图片预览接口(针对图片展示)
  6. 图片下载接口(针对图片下载)
  7. 图片删除接口(针对反馈人能删除已上传的截图等图片)
  8. 反馈问题详情接口(提供可查看反馈问题/需求的详细)
  9. 反馈问题删除(这也是对于反馈人的角度所提供的,人家可以针对自己所提出的问题进行删除。)
  10. ...

       暂时我就梳理了这些,后续还得根据页面实际需要进行调整,新增接口或者在已有的接口上修改等,都有可能。况且我这边既是开发负责人又是后端主力开发,所以还有一部分工作是需要我去构思并思考的,页面与后端如何交互,页面之间的交互逻辑等,这个我都得替前端小伙伴先指定好。本来正常的前后端交互是前端需要啥接口,制定好接口清单给到后端,后端再按接口清单评估后进行逐一实现,但是这部分工作都由我一个人去做了,所以啊,你们懂得,我有多蓝瘦。

       接口清单我们是梳理完了。接下来应该先在分发器层(Controller)把需要的接口先定义好,这样也好给同组的小伙伴分配接口实现,而不产生代码合并冲突。

       这里我们先要把Controller类先定义规范,restful风格还是其他什么格式,api描述等相关接口内容,在线接口文档这我用的是swagger2 + 第三方ui。如果有需要需要的小伙伴我可以下期专门出一期教学。

在线接口文档展示如下:

三、接口示范定义 🔥

       至于具体接口如何定义:我就大致列举两个给大家做个示范好了,因为这个后续我也会带着大家一个一个去实现的,大家不用着急,我就先给大家演示写个问题反馈的保存接口吧。仅供参考:

    @Autowired
    private IUserQuestionsService userQuestionsService;

    /**
     * 反馈问题保存
     *
     * @param images          img图片数组
     * @param inPage          问题反馈/建议所在页面
     * @param questionContent 反问题反馈/建议描述
     * @param questionType    问题反馈类型(功能异常、体验问题、功能建议、其它)
     */
    @PostMapping("/save")
    @SysLog(logType = LogTypeEnum.LOG_TYPE_IMG_UPLOAD)
    @ApiOperation(value = "反馈问题保存", notes = "反馈问题保存")
    public ResultResponse<Boolean> saveQuestion(@ApiParam("图片数组") MultipartFile[] images,
                                                @ApiParam("问题反馈类型") String questionType,
                                                @ApiParam("问题反馈/建议描述") String questionContent,
                                                @ApiParam("问题反馈/建议所在页面") String inPage) throws IOException {
        return userQuestionsService.saveQuestion(images, questionType, questionContent, inPage);
    }

       如上接口是针对问题反馈进行保存时所调用的,这也是根据页面梳理所得,需要保存那些字段,然后接口这边直接给定参数接收即可,可能麻烦一点的就是处理图片数组了,这也算是个比较大的坑,如果你做过一次,那你就会对它比较的熟悉,MultipartFile类。

       对于swagger在线接口文档如何安装及使用,如果有需要的小伙伴,我可以下期着重进行入门级教学及演示,我会进行评论区统计一下,大家的呼吁。

... ...

       ok,以上这样就好啦,如果还想学习更多,你可以看看我的往期热文推荐哦,每天积累一个奇淫小知识,日积月累下去,你一定能成为令人敬仰的大佬的。好啦,咱们下期见~

四、往期推荐🔥

        对于问题反馈模块实战开发,我完整的梳理了每一期的教学及链接地址,仅供参考:希望能对你们有所帮助。

如上是整整二十期内容,每一期都是干货,对于一个模块的开发,如何一点一滴打造并测试部署上线,我再说一遍,这不是演习,是实战!是实战!是实战!

若你们觉得只是需要了解其中某个知识点或者业务的话,也不反对,你就选择其中的几期进行学习就好,反正都已经完结啦;我只希望你们能有所收获,有所成长,也就不枉我苦心每天下班后给大家总结更新。

文末🔥

如果还想要学习更多,小伙伴们可关注bug菌专门为大家创建的专栏《springboot零基础入门教学》,从无到有,从零到一!希望能帮助到更多小伙伴们。

我是bug菌,一名想走👣出大山改变命运的程序猿。接下来的路还很长,都等待着我们去突破、去挑战。来吧,小伙伴们,我们一起加油!未来皆可期,fighting!

感谢认真读完我博客的铁子萌,在这里呢送给大家一句话,不管你是在职还是在读,绝对终身受用。
时刻警醒自己:
抱怨没有用,一切靠自己;
想要过更好的生活,那就要逼着自己变的更强,生活加油!!!