00:00
来这节课呢,我们就是要对数据语。把数据录上去,同时开发相应的接口。我们打开这上面啊。找到我们代码在这里面呢,我们可以选择相应的,比如说店家更多选项呢,可以导入数据,导入我们选的数据啊,那么导入哪些数据呢?我们选择我们发给大家的项目数据,在这里面要注意啊,我们要选择对应的数据,Shop就是shop,点击打开,点击确定好,那么数据就导入成功了,诶咱们就能看到它对应的数据全部导入成功了,这就是我们创建的所有的这个电价数据啊,什么第一分店,第二分店啊,然后还有这个数据。然后呢,数据都是我们自己录的一些比较随机的数据,那么未来大家在操作的时候呢,如果你觉得这些都是肯德基不太好,对吧,你可能想要麦当劳啊,想要其他的,那么你可以自行去上传一些数据啊,后续我们可以教大家怎么操作。
01:00
好,然后呢,除了上传数据以外呢,我们还需要上传这个食品数据啊。来导入数据。选择我们的这个负的打开确定啊,那么食品数据就导入成功了,接下来来到分类数据,这里我们也需要写入导入数据,导入这个carry数据,点击打开点确定啊,那么分类数据也导入顺序了。好了,那么这些呢,就是我们导入的数据,而购物车和订单这一块就没有没关系啊,因为这一块呢,是要我们自己做操作之后再加入的,所以他没有是很正常的。好了,那接下来问题来了,咱们数据都建立好了,那么怎么去请求这些数据展示呢,对吧?这时候我们要来到这里,有个叫做开发语音函数的一个按钮,我们点击它,诶接下来就会进入这个面板,在这个面板中呢,我们可以去打开我们的接口文档,但是你要打开接口文档的话呢,我们可以随便点击一个,不管是点击这个还是点击什么global,在这里都有个接口联调的一个内容啊接口链条,如果你点击的话呢,它其实要打开的网站就是那个接口文档,但是如果我们没有创建这些函数的话啊,它是默认啊,它是没有生成这个监控难的,所以说我们至少要创建一个函数,它才会生成相应的监控难。
02:24
我们后续呢,先会做这个,呃,我们比方说就拿到这个shop啊,在这里我们简单操作一下,我们希望做一个事,就是将来我要做这个功能啊。我们一起来看一下。看一下这个原型图,这个店家的这个数据。Shop这个店家这个图片啊,我们请求shop数据的时候,除了要请求这个店家的所有数据以外,我们还要请求这个店家对应的分类数据和店家对应的这个食品数据,所以这一共涉及到三张表,整体是属于shop啊,是属于店家数据。
03:03
对吧,然后左边这个属于分类数据。右边这个呢,属于负的,所以我们要进行查询好来到这里的话呢,我们将来啊,能得到的是一个ID,这个ID就是shop的ID。我们要通过shop ID查询到shop的数据,同时还要进行列表查询,查询到分类和食品的数据,并且呢,我查询的时候还要保证啊,查询的这个食品数据要从属于某个分类下,因为将来好做这个tab tab的一个切换。对吧,比如说我这个KG饭桶对应的食品有哪些啊,炸鸡小食对应的食品有哪些,所以他们有这样的一个从属关系,比如说整体数据结构,就是整体是一个shop数据,里面有分类数据,而分类列表是有很多的,每一个分类下面要有对应的食品数据,我们希望查询的时候一个这样的结构。好,这个结构呢,我们在建立关系的时候也已经建立好了,对吧,在建立数据库的关系的时候也建立好了,我们说可以通过这个关联查询到我们对应的分类数据,而分类数据通过这个关联又可以查询到对应的食品数据,所以我们这个关联也建立好了,后续也好操作了。
04:19
那么好,我们来尝试建立一个啊。目前呢,这个shop呢,它没它本身提供的功能呢,比较有限啊,它只能查询到它当前表的一些数据,那么我们需要查询多个数据,我们要开发新的函数,我们在这里左上角点击添加函数。我们要要操作的是这个shop这个表啊,那么要听见的是远程函数。呃,三个函数的区别呢,普通函数呢,它就是我们的一些简单的操作啊,那么钩子函数呢,就是在我们比如说在一些什么请求前,或者保数据保存前,数据删除前等等啊,就是在他们之前或者之后做一些操作。我们是远程函数,是是其他的,咱们的客客户端要去调这个接口,是远程函数,呃,那么是查询啊,所以请求方式get,我们叫get shop info,获取shop的这个所有的信息。
05:12
一般来讲呢,我这个函数名和方法名呢,会叫人一样的名字啊,咱们就不改了,获取店家的数据。好了,那么需要什么参数呢?只需要一个参数,就是shop的ID啊。它的类型呢?那必然是string类型,店家ID。你给我一个D加ID,我返回给你店家,数据包含分类,数据包含食品数据,并且食品数据要从属于某个分类,下面我们看怎么做吧,下面就是定义这个函数。OK啊,整个数据呢,它其实类似它是它底层是用的是芒果DB操作的啊,我们可以在这里去给大家演示一下怎么去做啊,这个shop呢,就是对应的那个芒果DB的那个模型对象,在这里面我们去查询数据,因为查询多个啊啊查询一个,因为是一个定价数据,所以我们可以用find one方法。
06:05
那么他在这里面对这些方法呢,做了一些。呃,处理啊处理,所以说我们在这里去搜索的话呢,呃,搜索条件啊,得叫多乐福威啊。做条件叠加多的负V2。在这里我们泛指。我们要。呃,搜索的这个条件是这个shop ID对吧,然后呢,我们要连表查询呢,它这里需要用的字段是include。呢是对象可以是数组啊,如果对象的话,那就是关联一个表对吧,数组的话就是关联多张表,连表就是查询多张表的数据啊,我们是先查询这个catory分类这张表,再查询分类表中的,因为里面就一张了这个负的表,所以就这样写啊。来,我们换个行。
07:04
来这里其实方法啊,Find方法呢,就是查找嘛,查找一个。就是从shop。模型对象中找一个。好多的负二呢,就是查询条件嘛。对吧,我们场景ID就是根据这个shop的ID,当然我们写的话应该是ID的,只是shop ID啊,这里别写错了,因为我们这个shop模型对象中,它里面对应的ID是加ID的,但是我们传的参数我们是叫说ID的,所以说这个参数不能写错啊,查询条件include呢是连表查询。对吧,它可以是数组也是对象,如果你连一张表就对吧,就是就可以是对象。那么列表查询意思是列表查询这个。
08:01
Carry这张表。从这把shop。中。查询这个carry。表对应的数据,然后呢,这里有一个数组里面放负的啊,那么这个意思就是要从carry中对吧,查询。对,就是这个负的表。对应的数据。所以for表对应的数据会保存在carry中,而carry对应的数据又会保存在这个shop中,最终达到这个效果。他们回之是一个P项啊,我们作弊就可以得到我们想要的所有的这个shop的信息了。好,那么后面呢,我们就可以返回啊,返回的话呢,我们因为请求是有可能失败的啊,所以这个当你做这些,呃,数据库的操作可能是有失败的,所以说我们包一个try catch。对吧,如果这个失败了,我们好。
09:00
对应的做一些。呃,调整好了TRY呢,它这里万一失败的话呢,咱们就,呃,TRY里面代表没有失败啊,没有失败的话呢,我们返回响应return的返回值就是响应结果啊。对吧,所以我们return这个shop in符就好了啊,这个就是相结果好开始里面呢,说明有问题啊,有问题我们抛异常。它什么异常呢?它有一个函数叫G的函数。专门用来去,呃,做这个异常处理的啊,第一个是异常的这个信息。就是到底是什么操作,比如说我们查询失败啊,那么第二个是给他标记一个特殊的一个状态码。这个你可以自己写啊,比如我们叫such。Such a fact。
10:01
搜索失败了。去那些也行啊。好的,呃,咱们这个接口呢,还有一些小问题啊,这里写错了,比方说我们这个搜索条件这里是没有动作符的,还有就是我们这个error函数的是要用一个L的。我们下面再对它进行编辑啊,我们把它改改,对,这样呢,我们测试才不会出问题,另OK,那么我们保存一下,再重发布,并重启这测试环境。发布成功之后呢,我们这个文档的刷新一下啊,它接下来呢,就服务在启动中,那么这个过程中,只要他第一次启动成功了,后面这个刷新就很快了。我们找到这个店家啊,在这里面呢,就有我们定义的这个接口,除了我们定义的接口以外呢,我们会点开任意的它都有相应的接口,分别是获取所有列表,更新删除啊,然后这是添加,说错了啊添加,然后这是更新对吧,然后查询它的所有数量。
11:15
这个接口就是我们刚刚定义的这个远程函数啊,所以就专门出来一个接口获取说否在这里我们只要传受帕D就会得到相应的所有数据了,那么我们来尝试一下。这时问题来了,我们收盘D怎么写呢?回到我们的模型对象啊,刷新一下页面。在这里面呢,继续点到这个shop模型,然后来到这个shop页面,我们可以选择任意任意一家店的ID去搜索,但是可以明确告诉大家,我们只有这个肯德基昌宏百货店它有数据,其他的呢,我们没有录入数据,所以我们必须要用这个昌宏百货店的ID去测试,你才能得到你正确的数据啊。好了,输入ID,点击tryout。
12:00
下面就能看到啊,来这里就有写的请求方式对吧,请求地址它的一个描述,然后这里是请求参数per参数是查询字符串参数,Query代表quew啊试一试呢,这里就是一个可以测试啊。那么测试之后呢,在response body这里就能看到响应结果,诶,这时候我们就看到了咱们的商家,商家名称啊,商家描述啊,商家评分啊,图片啊等等,然后分类数据啊,分类这个KKG范畴,那么这里对应的食品数据也在这啊,全都请求回来了。所以这个操作呢,就非常的方便,他把不单电价的数据请求回来,还进行了列表,查询了这个分类和这个食品的数据。到此我们就把将我们的整个数据模型对吧的数据录入进去,同时呢,我们开发出来的一些接口,并且呢,我们生成的一个接口文档,在接口文档这里,我们目前是测试接口啊,所以目前的这个测试接口地址在这里我们可以看到,所以未来发请求的时候,我们都要按照这个地址去发请求,对吧?然后后面该传什么参数就指定的传就好了。
13:09
好了,以上呢,就是我们把数据录入,同时我们开发了一个远程函数,后续呢,我们还要根据不同的功能再接着一个一个开发。
我来说两句