00:00
看一看访问节流和内部的调用。文档的地址继续往下看啊,访问节奏限制,访问节奏限制呢,就是可以限制客户端请求我们啊API的一个次数。就是在多少次内你只能请求多少次,这样可以啊,防止一些CC攻击去保护我们的API。嗯,默认的这个限速是绑定的这个客户端的IP,当然我们可以去注册我们自己的一个解决者,去改变他的这个默认的一个行为。如何启用这个节流限制?如果要为路由启用节流限制啊,直接使用这个API点啊这个中间件就可以了。啊,当然他会呃,去用我们配置过的这个。节流的这个。一些数据啊,然后在特定路由上去使用也可以啊,这样是在所有的去去使用。啊,这都是中间件的一些使用方式啊,我们来看一下这个,比如。
01:02
我们使用这个中间链,然后它这个是五分钟啊,只能请求100次。找到我们的root啊,API这里面为了做测试,我们改一改,改成三次啊,一分钟只能请求三次。对吧,接下来找到我们的API,因为我们是加到了这个V1,就是说我V1版本里面,所以里面的所有的API都会受到这个叠流器的一个限制,清楚吧。啊,当然他手册里面也列举了,就是说基于这个方法的,基于这个啊某些啊方法或者某个某个路由行为的,或者基于组的都可以,这里我们给所有的啊都加上。那随便找一个去测试就行了,比如我们的test。哎,正常返回没问题是吧,我们再来请求一次。也没问题啊,再请求一次,现在是三次了,没有问题,都正常,当我们在请求第四次的时候,也就是说一分钟我们已经超过了这个三次的话,他就会告诉我们,你这个请求的这个已经超过了这个限制,并且我们返回之429的一个状态码,对不对,这就是关于请求的一个截流啊。
02:11
你把我们这么配一下就可以了,还可以去自定义啊,自己的一个啊,更复杂的一个阀门,只要你去实现了它的这个啊,这个接口就可以啊。好,实现这个结果之后呢,啊,我们就可以去。啊,创建我们这么一个类啊,创建我们自己的这个设置的这个一个就是你在任意位置,你去创建这么一个类就可以,只要实现它这个接口,然后就是说实现它的这个卖方法,在里面去写我们的逻辑就可以了。啊,就是返回出和first这里面可以写我们现在这个条件,那怎么使用呢?在这个app.api.pp里面啊,配置上啊,这个就可以了。啊,比如啊就是这个位置啊,我们API就是你你创建好类之后呢,在。Config。
03:00
啊,这个API里面啊,有一个这个。啊,这个截流这里你放到这里去配置就可以了啊。啊,这里我们简单的就使用一下,放到这个路由上面。放到这个路由上面去使用一下就可以啊,不用去写自己的一些验证规则,当然你有自己的需求的话,可以去写一写。接下来看一看这个内部的调用啊,首次在这里内部的调用就是我们应用程序自己去请求我们内部的一些API。知道吧。啊,如果啊,要想要内部调用的话怎么办?我们可以去啊,构建一个这个发起内部请求的一个这个分发器的一个实例,接下来我来定义一个方法。在这里面也定一个不需要登录的一个方法吗?在上面吗?啊在这里内部调用。API啊,我们定一个盖的方式,然后定一个in方法啊。
04:01
请求给个数组test c了。Class使用in方法啊,这个我们来测试我们的内部调用,接下来。找到test control了,我们去写一个in方法。啊。用它来测试内部调用。首先你要使用内部调用,你先去构建一个这个分发器的一个实例啊,用于发起我们的内部一个请求,好,然后你就可以使用这个分发器提供的一些方法去发起请求了啊,比如我们使用它的get方法去请求一个啊用户的一个信息。好。那我们请求哪个呢?请求。Test吧。你看。这个user需要登录,是不是test不需要登录?我们来请求这个太子的。Get a撇里面的test前面要加A撇前缀啊,这时候。
05:04
啊,把注释写一写啊,分发器,分发器实力。然后普通请求啊。好,接下来我们把那个U给返回啊,Return啊,This,我们使用响应生成器去返回。响应就响应,一个一个集合吧。啊,直接返回吧,直接返回他吧,简单一点吧。来看一下我们请求这个in,看能不能得到从这个接口里面去得到的这个用户的一个数据,再新开一个。使用盖的方式请求api.test斜杠API里面的。看到啊,是不是得到我们请求的数据了,对吧,我们请求这个音方法,我们音里面并没有进行用户查询什么数据,就进行了一个啊,请求了内部的自己的一个影片啊,这种是普通的一个请求。
06:09
好。那接着往下看。接着往下看。呃,在请求的时候呢,有一些我们内部的一些API,需要参数的话,我们可以使用位置去传一些参数。这里我们就不测试了啊。还可以使用指定的一个版本,如果你不加版本,它默认使用的是V1。还可以使用指定一个域名啊,包括这个上传的这个附件都可以。发送接身数据啊也行,接下来只要看看这个啊,认证的用户,因为有些API需要登录才可以知道吧,就比如我们的。啊,这个。获取用户的这个列表,你看是不是需要加上我们的认证的消息才可以,如果没有这个认证的消息就拒绝我们访问,对不对?那我们怎么来请求这种数据呢?哎,怎么内部请求这种API呢?首先来请求一下事实。
07:01
啊,我们还是先。发起一个请求,请求API user,这个接口是user啊,看一下。啊,是这个右侧词哈。接下来执行是吧,它告诉我们。这个请求超过限制了,我们先把那个调大一点吧,这个不太有利于我们去测试。找到。Root API把这个调成六十一般我们一分钟限制60,对于正常的用户就够用了。了吗?也会去杜绝一些非法的用户。接下来我们再测试。啊,是不是告诉我们401没有没有权限,你看我访问的in音里面,我是进行内部请求的这个get u3,这时候对于需要一些认证的API怎么办?我们可以去模拟这个用户啊,怎么模拟。它这里是。啊。
08:01
获取了这个。啊,Also里面获取用户,但是你also里面你获取用户的话,你还是要带上。Talking才行啊,如果如我们用这个also里面获取用户信息,这里是要带上talking才行,要不然拿不到用户信息吗?对不对,哎,实际上很简单,其实它这个B这个方法就是要一个用户的实力而已,我们甚至去查询数据库,得到一个用户的实力也行。叫什么模拟用户啊哎。他是不是需要一个登录才行啊,那我们给你模拟一个用户。啊,我从用户表里面去查。Finda。一我拿第一第一个用户一个模型给你放到这个啊B这个方法里,Dota u来我们再试测试一下。看一下。是不是就不会再报这个啊,没有权限的问题了,对不对,所以说啊,这个B方法,他只是要一个用户的一个模型啊实力。你如果在请求的时候,你传了这个talking,这样的话就能从also里面去解析出来用户,所以你就可以去用这个also啊user,但如果你不传的话,我们就可以直接去查询数据库,得到一个模拟的一个用户进行返回就可以了。
09:14
清楚吧,好。啊。包括返回的原始的一个对象,异常的一个处理。啊,这个大家看一看就可以了。嗯,接下来这个o2.0这个不做,呃,产细讲解,这个是我们在做一些第三方授权登录的时候会用的,这里我们是一个啊,仅仅是一个API的一个项目,我们用GWT做认证就可以了,奥2.0这里啊暂时不做。再来看一看如何请求我们的API啊,这里我们也已经进行过很多次的一个请求了啊,所以大家比较熟悉了使用啊,这个postman是比较简单的一个方式,向一篇发起请求。知道吧。然后如果我们想要请求指定版本的一个API,可以加上这么一个头信息。好,接着我们来看一看,我们是不是还有一个版本的一个API,是不是有一个版本二的一个API,我们甚至可以定义。
10:08
嗯,同样的。啊,一个方法,比如说我们还定一个因方法。只不过这个是在V2里面对不对,然后这里我就不请求一了,我请求一二。方法来,接着复制一下那个婴儿方法。这里我就不写了。啊。这里我写什么呢?把这个改成一二,然后这里简单的去返回这个用户的模型可以吧。啊,来看一下这个API,这两个都是in是不是。你看和这个都是音是吧,我们如果不传这个。来看一下。现在是没有传的一个,现在看那个印,现在是没有传的一个情况下。哎,我们是不是得到这个用户的一个模型,但是这样不好做对比。
11:00
因为他俩返回的其实都是用户的一个模型啊,这个我返回二的吧,好吧,这个返回一的啊,因为这个是请求的内部的这个API嘛,模拟的是这个一这个用户啊。嗯。好,这样我做一个测试,现在我没有传这个图信息。是不是给我返回的这个一的这个A的这个信息对吧,那我如果想请求,因为我没有传这个头,呃S的头信息,所以它默认会使用的这个版本一的这个API,如果想要使用API怎么办?啊,可以去加上这么一个图信息,加上一个accept的一个header,现在我们给它加上这个header。然后加上一个accept。啊,这个值是什么呢?值就是这个东西啊,当然有些东西需要改,什么需要改呢。这个是我们使用的一个。啊,我们EV里面设置的这个看一下。啊,因为里面设置这个我们设置的SX是不是,所以这里你要改成我们对应设置的X,然后接着是我们的啊应用的这个名字,我们设置出效果。
12:07
啊,这里也要改啊。下。好,接着是我们的版本,我们请求V1的,然后后面是杰森V1的,还是这个一,是不是如果我们请求同样的地址,我们去请求这个V2的。来看二。这个打错了。这就是shop啊,留点V2的。是不是变成了变啊,我们如果请求这个唯一的。虽然是同一个地址,但是因为我们使用了不同的这个啊版本你看是不是一的,如果我们不传它默认也会去使用第一个版本的,兄弟们,这个是关于这个API多版本的一个使用啊。关于这个,所以我们在创建这个。路由的时候先建了一个版本的一个组。啊,就方便我们对同样的一些API,比如做一些升级,做一些调整。啊,从而不影响到啊其他的一些业务。
13:01
接着看一看。啊,也可以使用CRL,当然这个是临时做一些测试还可以啊,但是你这么去使用的话就比较慢,我们开发的话就使用这个工具就可以了。好。
我来说两句