这两个星期一直在做关于IT资产管理相关的内容。这个内容大概就建立三张表,然后对三张表进行操作。一般情况下,对一张表也就那么几种操作:增删改查,导入导出。这里我说了6个操作,那就代表要写6个接口。这6个接口就是最常见的接口,如果你不会写这6个接口,那基本上是入不了门的,其实只要你会写这6个接口,基本上基础就打好了,其实所有接口都是那么几类,只不过分简单的接口和复杂的接口。复杂的接口和简单的接口的不同之处在于,复杂的接口的service层要处理的逻辑更加复杂,mapper层写的sql语句更加复杂,除此之外其实都差不多。
今天我先不讲这6个接口,我来讲讲我在今天工作中用到的,叫“查看” 的接口。其实查看也就是查询咯,基本可以把这个接口归为查询接口。
这个接口要完成的效果如下:
首先先来把查看接口的完成效果给搞懂:“展示设备所有信息”指的是要把IT设备信息表的所有字段给查出来。“展示设备维修记录”指的是把IT维修记录表中的故障时间、发现方式、故障情况字段给查出来。“展示设备变更记录”指的是把IT领用记录表中的原使用人和现使用人给查出来。
当我们搞懂这个接口要返回什么之后,我们就要搞懂这个接口要传入什么。你想查看某个IT设备的所有信息嘛,那你肯定要知道这个IT设备的id,只要你有设备id了,那就可以知道这个设备的所有信息了,所以接口要传入设备id。我当时为什么知道要传入设备id呢?因为我当时是找了一个很类似的接口,这个接口是查看设备详细信息功能,那个接口传入的参数是设备id,所以我推断,我这个查看接口传入的也是设备id,我当时是这样想的。
当我把接口的输入输出都搞清楚之后,我就可以开始写接口的controller层了。controller层的返回VO应该怎么写呢?自己写?这么多字段自己写,岂不是把我写死了,肯定不会自己写呀,AI这么强,让它来写就好了。我把我想要实现的VO的效果告诉它,它就会帮我写了:
AI告诉我要这样写:
那就这样写咯!
这样,controller层就搞定了。最后controller层长这样:
接下来写service层。
service层其实没什么需要写的,因为这个就是查看IT设备的详细信息,没有任何的业务逻辑,所以service层不用写什么代码,最后service层长这样:
最后写mapper层。mapper层其实就是写sql语句。说实话,这个sql语句要是自己写,那很麻烦,麻烦的点在于字段太多啦,自己一个个写,那不得写死。所以我决定叫AI来写。还是一样,我把我的想法告诉AI,让AI帮我操刀。
它就会给你生成你想要的sql语句。不过后来我想了想,我的想法有点错误,因为一个设备可能有多个领用记录以及多个维修记录,所以当我想要查有多个领用记录和多个维修记录的时候,就查不到了,会报错。所以,我需要对这个sql语句进行改进。还是一样,我把我的想法告诉AI,让AI帮我操刀。AI告诉我这样写:
那我就照着AI的来写。
写完后,如果没有报错,那么mapper层就写完了。
然后用postman测试一下,如果可以的话,证明这个接口就写完了。
可以看到postman测试通过,接口已经写完了。
总结一下,整体的思路就是查IT设备信息表的所有字段,IT领用记录表的某几个字段,IT维修记录表的某几个字段,但是一个设备可以对应多个领用记录和多个维修记录。这个接口的目的就是通过设备ID把设备的所有信息以及多个领用记录和多个维修记录给查出来。
心得
AI是一个十分强大的工具。我之前使用AI的时候,经常会问一些很宽泛的问题,比如说“请你帮我写一个查设备所有信息的接口”。这种问题你交给AI,AI肯定不知道怎么回答你,而且它给出的答案和你真正想要的答案差别很大。一般你问AI要问哪种问题呢?就是类似于我上面那种,你要给它一个具体的问题,比如说我想要写一个VO,这个VO是什么样的,最后想要出来一个什么样的效果;或者我想要写一个sql,这个sql是什么样的,要查多少个字段,从多少张表中查,表与表之间怎么关联起来的。这种问题问出来才有用,AI才会帮你写的很准确。