
软件介绍
TykAPIGateway是一个绿色安全、免费开源的轻量级API网关软件,为开发人员门户和API管理仪表板提供完整生命周期API管理平台,使用这款网关软件用户能够完全控制你的API,可以自由设置API访问权限,从而保证网络的安全性;TykAPIGateway功能强大、专业实用,使用这款软件用户可以创建多个API,可应用于多个密钥的安全策略,创建密钥可以将配额和速率限制应用于API或者可以从安全策略继承设置,通过该API网关软件可以有效控制和保护网络的访问安全,有需要的朋友可以下载使用。

软件功能
使用任何协议:REST,SOAP,GraphQL,gRPC和TCP。
行业标准身份验证:OIDC,JWT,承载令牌,基本身份验证,客户端证书等。
开放的API标准:将您的Swagger和OAS2/3文档导入Tyk中的脚手架API。
超高性能:低延迟和仅单个CPU即可实现数千rp的水平和垂直扩展。
内容中介:转换所有内容,从请求或响应标头到在SOAP和GraphQL之间转换。
可扩展的插件体系结构:通过以您选择的语言(从Python到Javascript到Go或任何支持gRPC的语言)编写插件来定制Tyk的中间件链。
速率限制和配额:保护您的上游免受过载和/或对每个消费者施加限制。
API版本控制-可以在特定时间和日期轻松设置和弃用API版本。
粒度访问控制-在每个版本和操作的基础上授予对一个或多个API的访问权限。
阻止列表/允许列表/被忽略的端点访问-逐个版本对访问点实施严格的安全模型。
Analytics日志记录-记录有关谁在使用您的API的详细使用情况数据(仅原始数据)
CORS-为某些API启用CORS,以便用户可以进行基于浏览器的请求
Webhooks-针对诸如配额违反和身份验证失败之类的事件触发Webhooks
IP允许列表-阻止对非信任IP地址的访问,以实现更安全的交互
重载-可以动态更改Tyk配置,并重新启动服务,而不会影响任何活动请求
Kubernetes本机声明性API:使用开源Tyk运算符(更多信息参见OSS部分)
软件特色
RESTFulAPI
众多访问协议开箱即用。
费率限制
配额的执行
粒度访问控制
钥匙到期日
API版本管理
黑名单/白名单/忽略端点访问。
分析和监测
网络钩
IP白名单
零停机时间重启
通知和活动
向后兼容性
官方教程
Tyk测试指南
对于测试,主要问题之一是如何在表达性,可扩展性,可重复性和性能之间保持平衡。关于是否应该编写集成或单元测试,是否应该进行模拟,是否应该先编写测试,之后还是之后编写测试等问题,有无数的讨论。由于永远找不到正确的答案,在不断增长的代码基础上,许多人开始介绍自己的方法和独特的测试助手。即使查看我们很小的代码库,您也可以找到3-4种编写相同测试的方法。
本文档介绍了Tyk测试框架和有关编写测试的统一准则。
测试框架的要点是:
所有测试都通过完整的HTTP堆栈运行HTTP请求,与用户执行的操作相同
测试定义逻辑与测试运行程序分开。
仪表板,RPC和Bundler的官方模拟
位于“github.com/TykTechnologies/tyk/test”包中的框架。参见其API文档https://godoc.org/github.com/TykTechnologies/tyk/test
让我们通过示例学习:

直接Github链接
现在,将其与以前的Go风格方法进行比较:

直接Github链接
请注意,在最后一种“经典”方式中,我们仅定义了一个测试用例,而在我们的新框架中,我们定义了6个,所有这些都是可重复的,并且共享框架提供的相同断言和测试运行器逻辑。
现在,让我们逐一检查使用新框架编写的测试。
初始化测试服务器
核心思想之一是,测试应尽可能接近真实用户。为了实现它,框架为您提供了一种使用tykTestServer对象以编程方式启动和停止完整的GatewayHTTP堆栈的方法,如下所示:
ts:=newTykTestServer()
推迟ts。关闭()
创建新服务器时,它会初始化网关本身,在随机端口上启动侦听器,设置所需的全局变量等。这与启动网关进程时发生的情况非常相似,但是在这种情况下,您可以按需启动和停止它。
您可以使用很少的变量来配置服务器行为,例如通过提供tykTestServerConfigobjectnewTykTestServer作为参数来在单独的端口上设置控件API。这是所有可能参数的列表:

要关闭服务器,只需调用tykTestServer#Closemethod即可,这将确保所有侦听器都将被正确关闭。
加载和配置API

您具有默认的最低限度的最低API定义(可以使用生成器功能进行配置)以设置测试所需的状态的基本思想。然后,API将被加载到网关中,并准备在测试中使用。
如果需要同时加载多个API,请buildAndLoadAPI支持可变数量的参数:buildAndLoadAPI(,,...)
您也可以完全不带参数地调用它,在这种情况下,它将加载默认的API定义:buildAndLoadAPI()
实际上,此函数是2个较低级函数的混搭:buildAPI和loadAPI,都返回[]*APISpec数组。在某些情况下,您可能需要构建API模板,并进行一些较小的修改即可根据需要在不同的测试中加载它。因此它看起来像:

在API版本内更新变量可能很棘手,因为API版本对象位于Versionsmap内,并且禁止使用map值进行直接操作。为了简化此过程,有一个特殊的helperupdateAPIVersion,可以像这样使用:

在某些情况下,通过Go结构更新API定义可能会有些复杂,您可能需要直接通过JSON解封更新API定义:

运行测试

使用新的test程序包TestCase结构定义测试,该程序包结构允许您定义http请求详细信息和响应断言。例如,使用指定的标头{Method:"GET",Path:"/",Headers:validPassword,Code:200}告诉对路径的GET请求/。发出请求后,它将声明具有给定值的响应状态代码。

tykTestServer提供了一个测试运行程序,该运行程序根据规范生成HTTP请求并进行断言。大多数情况下,您将要使用tykTestServer#Run(t*testing.T,test.TestCase...)(*http.Response,error)功能。请注意,它使用可变数量的参数,因此,如果您需要传递多个测试用例,请像上面的示例一样传递它:[]test.TestCase{,}...,最后加3个点。
此外,还有RunEx具有完全相同定义的函数,但是在内部它使用overrideDefaults和hotReload选项的不同组合多次运行测试用例(现在为4)。如果您需要测试紧密依赖于热重载功能的功能(例如重载API,加载插件包或侦听器本身),这可能会很方便。
无论Run和RunEx也返回最后一个测试用例响应和错误,在情况下,如果你需要它。
更改配置变量
在许多情况下,测试取决于各种配置变量。您可以直接在config.Global对象上更新它们,并使用resetTestConfig函数恢复默认配置。

上游测试服务器
您可能会注意到默认API已经针对一些为测试目的而创建的上游模拟。上游保留testHttpAny变量的URL,但是在大多数情况下,您不需要它,因为默认情况下创建的API已经嵌入了它。默认情况下,此上游模拟将成功响应任何url,并且响应将以以下格式包含请求的详细信息:

请注意,它包含最终请求的详细信息,因此,例如,如果您需要测试URL重写功能,原始请求的URL将不同于上游模拟的URL,则可以使用以下内容进行断言:BodyMatch:“Url”:“”。还要注意我们如何使用简单的BodyMatch字符串断言来验证JSON响应。
也有一些具有特定行为的特殊URL:
/get仅接受GET请求
/post仅接受POST请求
/jwk.json用于从upsteram下载JWK令牌的情况
/ws用于测试WebSockets
/bundles内置插件包网络服务器,下面有更多详细信息
协同处理插件测试
如果要使用Python,Lua或GRPC插件,则需要将捆绑清单文件和脚本打包到ZIP文件,将它们上传到外部文件Web服务器上的某个位置,然后将Gateway指向捆绑位置。
我们的测试框架包括内置的捆绑文件服务器,为简单起见,您仅提供捆绑文件的内容,它将自动将其作为ZIP文件进行服务器处理。
创建map[string]string具有文件内容的对象,其中键为文件名
呼叫registerBundle("",)将返回唯一的捆绑ID。
创建API时,将其设置spec.CustomMiddlewareBundle为由返回的包IDregisterBundle
加载pythonauth插件的示例:

创建用户会话
您可以通过调用createSession函数来创建类似于API的用户会话:

如果您可以使用默认设置,也可以不带参数调用它createSession()
如果您需要创建会话对象而不将其添加到数据库中,例如,如果您需要通过API显式创建密钥,则可以使用createStandardSession()函数,该函数返回*user.SessionState对象。
自定义上游模拟
如果您需要创建自定义的上游测试服务器,例如,如果您需要自定义的TLS设置来进行相互TLS测试,则最简单的方法是使用标准的Gonet/http/httptest程序包并覆盖spec.Proxy.TargetURLAPIURL来测试服务器。

模拟仪表板
还没有任何特定对象可以模拟仪表板,但由于Dashboard是标准的HTTP服务器,因此您可以使用类似于“自定义上游模拟”部分中所述的方法:

模拟RPC(混合)
当Gateway在Hybrid模式下工作时,它将使用gorpc库通过RPC通道与MDCB实例进行通信。您可以使用startRPCMock和stopRPCMock函数来模拟RPC服务器。startRPCMock在内部设置所需的配置变量以启用RPC模式。

DNS模拟
在内部测试中,我们将覆盖默认的网络解析器,以使用自定义DNS服务器模拟,并使用强大的github.com/miekg/dns库进行创建。域-通过映射helpers_test.go文件内部设置的IP映射。默认情况下,您可以访问域:localhost,host1.local,host2.local和host3.local。访问所有未知域将引起恐慌。
使用DNS模拟意味着您可以在多个域上使用API创建测试,而无需修改计算机/etc/hosts文件。
测试框架
上述框架的使用不受TykGateway的限制,并且可在各种Tyk项目中使用。主要构建块是测试运行程序。

通过覆盖其变量,您可以调整跑步者的行为。例如,http运行程序可以如下所示:

http处理程序的单元测试可以是:

该软件包已经导出了上述情况的功能:
funcTestHttpServer(ttesting.TB,baseURLstring,testCases...TestCase)
funcTestHttpHandler(ttesting.TB,handlehttp.HandlerFunc,testCases...TestCase)

Tags:Tyk API Gateway下载,开源API网关,网络安全,程序源码,源码相关
加密狗型号快速检测精灵系统其它 / 968.67MB / 2013-4-14 / WinAll, WinXP, Win7 / / 小编点评:加密狗型号快速检测精灵是一款简单小.
下载
大熊AVS视频处理 / 354.44MB / 2021-5-1 / WinAll, Win7 / / 小编点评:大熊AVS是一款用于批量查找指定目录下.
下载
源码下载者(CodeDownloader)下载工具 / 959.60MB / 2015-9-22 / WinAll, WinXP / / 小编点评:源码下载者是一款非常适合新手程序员的辅助工.
下载
Zlib下载工具下载工具 / 238.79MB / 2022-12-11 / WinAll, WinXP, Win7, win10 / / 小编点评:Zlib下载工具是一款书籍下载类型的工具.
下载
世界摩托大奖赛17十九项修改器修改器(游戏工具) / 51.46MB / 2013-5-11 / WinXP, Win7, win8 / / 小编点评:世界摩托大奖赛17是一款摩托主题的竞速.
下载
聚好学电脑版教育学习 / 994.79MB / 2017-8-2 / WinAll / / 小编点评:聚好学电脑版是一款非常有特色的学习.
下载
我是警察游戏汉化补丁汉化补丁 / 118.24MB / 2011-11-16 / WinXP, Win7, win8 / / 小编点评:我是警察游戏汉化补丁是这专门为喜欢我.
下载
Winner Download Manager下载V1.0.0.0下载 下载工具 / 560.90MB / 2016-3-8 / Win8,Win7,WinXP / 英文 / 免费软件 小编点评:软件介绍一款优秀的下载工具,使下载.
下载
RAR Repair Tools V3.1.0.0下载 其他杂类 / 875.38MB / 2015-2-5 / Win8,Win7,WinXP / 英文 / 商业软件 小编点评:软件介绍让你可以修复损坏的RAR和SF.
下载
ZMaker杂志制作大师V1.24.0.0下载 阅读器 / 971.56MB / 2010-8-4 / Win8,Win7,WinXP / 简体中文 / 免费软件 小编点评:软件介绍全部开源、永久免费的电子杂志制.
下载
慈方名医系统V3.121009下载 健康医药 / 802.87MB / 2010-8-13 / Win8,Win7,WinXP / 简体中文 / 免费软件 小编点评:软件介绍“慈方名医”系统是为临床医生提供的“.
下载
超级兔子PC装机达人V1.1.0下载 系统增强 / 558.77MB / 2010-10-15 / Win7,Vista,Win2003,WinXP / 简体中文 / 免费软件 小编点评:软件介绍超级兔子PC装机达人是超级.
下载
鼠标动作录制工具下载-鼠标动作录制软件 v1.2.55.01 键盘鼠标 / 561.80MB / 2012-2-28 / WinAll / 简体中文 / 免费软件 小编点评:软件介绍鼠标动作录制工具是一款非常简.
下载
橙赞下载-橙赞app下载v2.3.5 安卓版
小刺猬手速测试软件下载-小刺猬手速测试app下载v3.5.0 安卓版
不可能的赛车轨道2019游戏下载-不可能的赛车轨道2019手机版下载v1.4 安卓版
我在大清当皇帝vivo版下载-vivo我在大清当皇帝手游下载v4.8.2 安卓版
公主我心爱的小马利比破解版下载-公主我心爱的小马利比中文破解版下载v1.0 安卓版
我的世界0.16.1正式版下载-我的世界0.16.1中文版下载v0.16.1 安卓版
干掉僵尸游戏下载-干掉僵尸手机版下载v1.5.3 安卓版
泡泡神经猫破解版下载-泡泡神经猫内购破解版下载v1.5.6 安卓版
小小枪战反恐精英游戏下载-小小枪战反恐精英手机版下载v2.9.4 安卓版
多人过山车vr手游下载-多人过山车vr游戏下载v2.0 安卓版
一直播回放软件下载-一直播直播回放app下载v4.1.0 安卓版
一键横屏软件下载免费-一键横屏app手机版(one key rotation)下载v1.5.1 安卓版
明月天气手机版下载-明月天气手机版免费下载
生活服务 / 131.53MB / 2022-5-7 / / 下载
宠兽争斗下载手游-宠兽争斗官方版下载v1.2.1 安卓版
回合网游 / 229.40MB / 2015-3-23 / Android / 中文 / 南京微观商贸有限公司 / v1.2.1 安卓版 下载
点点狼人官方下载-点点狼人手游下载v1.2.9 安卓版
角色扮演 / 816.35MB / 2018-4-19 / Android / 中文 / 北京陶乐科技有限公司 / v1.2.9 安卓版 下载
内涵大魔王手机版下载-内涵大魔王手游下载v3.0.0 官方安卓版
卡牌游戏 / 426.81MB / 2015-10-26 / Android / 中文 / v3.0.0 官方安卓版 下载
无尽关卡红包版下载-无尽关卡游戏下载v1.0.0 安卓版
益智休闲 / 845.39MB / 2020-7-24 / Android / 中文 / v1.0.0 安卓版 下载
衣立方app下载安装-衣立方官方版下载v2.1.0 安卓版
网络购物 / 882.66MB / 2021-5-2 / Android / 中文 / 杭州汇美商业控股有限公司 / v2.1.0 安卓版 下载
mm商场最旧版下载-旧版mm商场下载v5.2.0 安卓版
常用工具 / 366.63MB / 2014-7-28 / Android / 中文 / v5.2.0 安卓版 下载
克苏鲁地下城游戏下载-克苏鲁地下城手机版下载v1.2.6 安卓版
冒险解谜 / 246.20MB / 2023-5-23 / Android / 中文 / v1.2.6 安卓版 下载
纪念品大亨游戏下载-纪念品大亨官网版下载v1.0.7 安卓版
模拟经营 / 193.33MB / 2015-5-9 / Android / 中文 / v1.0.7 安卓版 下载
粒子战士游戏下载-粒子战士最新版下载v1.1.1 安卓版
动作游戏 / 446.63MB / 2016-12-17 / Android / 中文 / v1.1.1 安卓版 下载
水母喂养游戏下载-水母喂养手机版下载v1.1 安卓版
益智休闲 / 80.88MB / 2015-3-9 / Android / 中文 / v1.1 安卓版 下载
沙城肉搏手游下载-沙城肉搏官方版下载v1.0.29624 安卓正版
角色扮演 / 586.96MB / 2013-7-2 / Android / 中文 / v1.0.29624 安卓正版 下载
phigros测试版下载-音游phigros公测版下载v1.6.11 安卓试玩版
音乐游戏 / 413.14MB / 2013-9-25 / Android / 中文 / 鸽游 / v1.6.11 安卓试玩版 下载