- 试用公有云版本 API 管理需扫码申请(登录 腾讯轻联控制台,单击 API 管理菜单即可申请)。
- API 管理的独立环境与应用集成环境不能共用。
各大企业每天都有大量的 API 增长,同时越来越多公司开始公开 Web API,API 的使用场景正在累积。现在,每日 API 调用量在不断飙升,如何能够安全有效将这些 API 管理起来对于企业而言并不容易。
腾讯云数据连接器提供 API 发布功能,可以一键将已发布的应用打包生成 API,方便用户进行管理和调用;同时提供了 API 管理能力,可以针对 API 进行访问权限管控和流量调度。
登录 腾讯轻联控制台,在左侧导航栏单击 API 管理,即可进入 API 管理的主页。
在 API 管理主页,您可以创建或查看 API 服务、可以查看 API 目录、管理 API 订阅凭证,同时可对 API 服务进行审核管理。
此页面可创建或查看 API 服务。创建完成的 API 服务展示在此列表,项目内所有成员都可查看。
API 服务状态有三种:配置中、运行中、已停止。鼠标可 hover 到服务域名处查看该 API 服务的发布环境和域名。
API 服务支持的操作有:查看、新建 API、上架、下架、删除、查看描述文件、查看发布历史。
!
- 只有服务状态为配置中的 API 服务才可有新建 API 和删除的操作。
- 只有服务状态为运行中的 API 服务才可进行上架和下架的操作。
- 单击 API 服务的名称可跳转到 API 列表页。
支持管理服务分组,包括新建、删除、编辑服务分组。每个项目下的服务分组相互独立,互不影响。
API 管理功能支持 3.0.0 版本的 OpenAPI 规范。OpenAPI 3.0.0 规范的对象定义请参见 OpenAPI Specification。用户可以通过单击创建 API 服务进入 API 创建界面。创建 API 服务一共有2个步骤。
点击导入,即可支持通过上传YAML或JSON格式的文件,来导入服务。
配置服务名称,协议与描述。
服务名称和描述自定义即可,协议支持3种:HTTP、HTTPS、HTTP+HTTPS。分组可选择默认分组、新建分组。如下图所示。
配置策略信息
配置黑白名单:您可以按需开启,开启后可以输入多条 IP 进行黑白名单的访问限制。
基础流量控制:您可以按需开启,开启后可配置服务请求频率,每单位时间内允许的最大请求次数,填写范围为1 - 1000。
当上述配置全部完成后,单击完成,则会返回 API 服务列表,同时已经创建好的 API 服务信息将会展示在此处。
当我们创建好一个 API 服务之后,则代表此 API 已经生成,可以开始编辑其具体行为,包括 API 的请求路径(API Path)、请求方法、分组、鉴权策略、请求参数、策略配置、API 绑定的后端服务类型等操作。
新建 API 一共有3个步骤(附步骤四以 postman 为例从用户侧调用 API)。
API 名称、描述支持自定义。分组可选择默认分组、新建分组。
请求方法支持:GET、POST、PATCH、PUT、DELETE、HEAD。
鉴权方式支持:NoAuth、BasicAuth、OAuth2.0、HMAC。
后端服务类型支持:集成流、第三方服务、数据库、Mock。
请求参数支持:可自行添加请求参数,参数类型包括integer, string, number, boolean, array, object,最多添加30条。
数据库类型支持新建或选择 MongoDB、MySQL、Oracle、PostgreSQL、SQL Server 类型的数据源。
策略配置:
轻联API管理支持多样的策略配置,如下:
支持针对API接口粒度设置IP访问黑名单/白名单。
支持针对API接口粒度设置基础流量控制,包括API请求频率(该API被请求的最大频率)和源IP请求频率(该API被同一源IP请求的最大频率),周期时长包括:秒、时、日、7日、30日、365日。
支持针对API接口粒度设置请求包大小限制,指定请求body大小。
支持针对API接口粒度设置防重放攻击,开启后需配置header请求参数X-Ca-Nonce和X-Ca-Timestamp,并在每次请求时传入这两个参数:X-Ca-Timestamp代表请求时刻时间戳(秒级),X-Ca-Nonce代表请求的唯一标识(每个有效时长内不允许重复)。基于这两个参数来保障有效时长内请求的唯一性,保障API安全。
“nonce有效时长”代表底层存储每个API请求唯一标识的时长,如果太大可能影响校验性能。并且会将nonce有效时长视作正常API请求从发出到到达服务端的最大时间差,如果太小可能误判正常请求。
支持针对API接口粒度设置熔断降级策略,当每个“统计周期”内该API发生的错误(按“错误定义”)达到“错误次数”后,即会触发熔断并维持“断路持续时长”,此期间所有请求均转发到“降级后端配置”,从而适应API请求高并发场景。
选择集成流时:需选择webhook触发的且在运行中的集成流。
后端超时时间:可默认系统预设的,也可自定义。
请求方法:根据用户需求选择即可。支持:GET、POST、PATCH、PUT、DELETE、HEAD。
参数定义:支持配置前后端参数映射。
当上述配置全部完成后,单击完成,则会返回 API 列表,同时已经创建好的 API 信息将会展示在此处。
创建好的 API 会展示在 API 列表中,此页面可新建、查看和编辑 API。可上线 API、可设置、查看 API 描述文件和调用凭证,可查看 API 的订阅详情。
左侧是 API 列表,右侧默认 tab 页是 API 的详细配置信息:API 的访问路径、请求方法、参数、后端服务类型等都可在此处查看。
单击调试 tab 页,进入 API 调试页面。在 API 调试页面,您可以配置此 API Endpoint 的请求 Header 和 Body 内容,并单击发送请求。
随后即可获取到测试的结果。我们会将后端服务返回的 Response 状态码和结果返回给用户,方便进行进一步的调试工作。
右上角单击上线,可发布此 API 到多个环境。
发布后,发布后的API状态为运行中。
右上角的复制,可将当前版本覆盖到配置中的版本。复制后,API 服务可以再次发布。一个 API 服务可以发布到多个环境。
上线后的 API 服务可以下线服务。
描述文件是针对当前 API 服务的说明,左侧展示 YAML/JSON 格式文件,右侧对应展示 Swagger 可视化内容。
支持将API文档导出为 Markdown 格式文件,方便调用方查看。
创建 API 服务时,若选择的鉴权策略为 NoAuth,则可忽略此选项,反之,若 API 服务需要鉴权,则需在此页面配置调用凭证。通过当前服务下的任意调用凭证,即可调用服务下任意 API。
上图为凭证列表页,创建好的凭证会展示在此处,选择新建凭证,即可创建新的凭证。自定义凭证的信息,保存即可。
上架后的 API 服务,可以被该企业主 UIN 下的所有子 UIN 订阅并调用。该菜单可以查看当前 API 服务被订阅的情况。
此处可以看到订阅该 API 的所有用户名单,同时,可以移除某用户的订阅。
支持针对API服务设置脱敏策略,上架后被订阅时可以选择绑定脱敏策略,从而实现对订阅者返回按脱敏策略处理过的响应报文。
新建脱敏策略时,支持选择运行中的API服务。支持的脱敏规则包括预置脱敏规则和自定义脱敏规则,支持在一个脱敏策略中新增多个脱敏设置(每个脱敏设置对应一个API接口)。可以设置脱敏规则为:不脱敏直接返回、不返回、脱敏。
当选择脱敏时,支持选择预置脱敏规则和自定义脱敏规则。
自定义脱敏规则如下,支持设置掩码、哈希、关键字替换的脱敏算法。
单击删除,可删除当前 API 服务。删除后,该 API 服务下的所有配置将被清空,且无法恢复。运行中的服务不可直接删除,需先停止再删除。
上架:运行中的API服务,可通过上架功能共享给企业的其他员工使用。在 API 服务 > 操作 > 更多 > 上架路径提交上架申请,提交后的 API 服务会被企业管理员审核,审核通过后可展示在 API 目录中,支持被当前主账号下的所有子账号订阅。
下架:上架后的 API 服务,若不想继续被其他员工订阅,则可通过下架来完成。在 API 服务 > 操作 > 更多 > 下架路径提交下架申请,提交申请后需联系系统管理员或该项目的项目管理员进行审核,审核通过后即可下架,API 下架后不能被订阅。下架后的 API 服务会移出 API 目录。
上线后的 API 服务可以更改状态、环境等。在 API 服务 > 操作 > 更多 > 查看上线历史路径。此功能可查看到 API 服务发布后的历史情况(最多显示10条)。
支持查看API概览,包括服务数量统计,指标数据概览和查看已关注服务。可以在左上角选择“全局概览”(仅系统管理员可以查看)或“项目概览”(仅系统管理员和对应项目管理员可以查看)。
如图为查看API服务的总数统计,可以看到每个项目下的服务总数、每个服务下的API明细。
也支持查看项目统计图示,以及点击导出导出项目/服务/API明细列表。
支持设置“关注服务”,从而在API概览中直接查看其关键指标。
API 目录展示已上架的 API 服务。类似一个 API 服务市场,上架后的服务,不局限项目维度,可以被当前主账号下的所有子账号查看、订阅并调用。此页面可通过 API 服务的属性快速搜索服务。同时,可申请订阅或取消订阅 API 服务。
申请订阅 API 服务时,需选择或新建订阅凭证,将凭证与 API 服务关联上。也可以选择性设置流量控制和脱敏策略。待系统管理员审核后,即可成功订阅。
取消订阅后将不能调用该 API 服务,此操作无需系统管理员审核。
此列表可展示或搜索所有的订阅凭证,同时,可新建凭证。订阅凭证用于订阅 API 目录中的服务。凭证即为某 API 服务的钥匙。在申请订阅 API 服务时将凭证与 API 服务关联上,调用的时候填写该凭证,即可成功调用该服务。同时,能看到该凭证各种鉴权类型的 Key 和 Secret,调用时直接复制即可使用。
一个凭证支持与多个 API 服务关联。可在订阅的 API tab 页查看此凭证关联的所有 API 服务。
新建凭证时,自定义相关属性即可。
审核管理分两个功能:我提交的和我审核的。涉及到审核的事项都在此功能页处理。
我提交的:展示个人提交的所有审核信息。全部角色都可见。
我审核的:此页面展示需审核的信息。只有系统管理员和项目管理员角色能看到。其他角色访问页面数据为空。
系统管理员审批全部项目 API 服务上下架或 API 服务订阅的请求。
项目管理员审批所在项目内的 API 服务上下架或 API 服务订阅的请求。
支持系统管理员对全部API接口按所选检查策略进行规范检查,得出每一个API接口的检查明细、得分,并支持导出检查报告Excel文件,以作进一步分析。
规范配置:系统默认提供一个“默认策略”,其中包括针对请求路径、请求方法、鉴权方式、请求参数、后端资源路径的规范检查项配置。用户也可以自行新建检查策略。
系统默认会给所有API服务,都关联默认检查策略。
规范检查:
进入规范检查菜单,可以按指引启动规范检查,检查结束后可以查看检查列表,呈现每个API接口对应的待修正检查项,检查结果,结果分值。
支持点击待修正检查项,查看详细的不规范项内容。
还支持点击右上角导出检查报告,以及设置检查结果分档。
API 服务无需验证的情况:
API 服务需要 Basic Auth 的情况:
复制 API 的调用地址(需先成功发布 API 服务):
进入 API 服务详情页面,新建或打开已有调用凭证,即可查看用于 Basic Auth 的AK/SK信息:
打开 postman,将上述获取的 API 调用地址和用于 Basic Auth 的 AK/SK 信息分别填入:
API 服务需要 OAuth2.0 的情况:
复制 API 的调用地址(需先成功发布 API 服务),方法同上,不再附图。
进入 API 服务详情页面,新建或打开已有调用凭证,即可查看用于 OAuth2.0 的AK/SK信息:
进入 API 服务详情页面,单击并复制对应 API 的 Token 获取链接。
在 postman 中创建一个新的请求,来获取 accsee_token。
首先,在输入栏中输入第3步获取的 Token 获取链接,并选择 GET 请求方法。
其次,选择 Params 标签页,分别输入第2步获得的用于 OAuth2.0 的 AK/SK 信息(格式见下图)。
最后,单击 send,即可生成下图中的 access_token 内容,将其复制。
在 postman 重新打开一个请求界面,填入第1步获取的 API 调用地址,Type 选择 OAuth2.0 模式。并在右侧填入第4步获取的 accsee_token,单击 send,即可看到访问结果(如果配置 API 时还设置了请求参数,这里也要按位置输入)。
API 服务需要 HMAC Auth 的情况:
复制 API 的调用地址(需先成功发布 API 服务),方法同上,不再附图。
进入 API 服务详情页面,新建或打开已有调用凭证,即可查看用于 HMAC 的 AK/SK 信息:
打开 postman,在输入框填入第1步获取的 API 调用地址。
将 postman 切换到 Pre-request Script 标签下,粘贴下方代码段(注意用第2步获取的 HMAC 的 Key 和 Secret,分别来替换代码段中的 hmac_key 和 hmac_secret 变量值)。
var hmac_key = "2e4d0bbad47e3b5e3a0c";
var hmac_secret = "815ba6d666d58ef1e79b";
var time = new Date().toUTCString();
console.log("time:" + time)
var signed_headers_string = "";
signing_string= pm.request.method + "\n" + pm.request.url.getPath() + "\n" + pm.request.url.getQueryString() + "\n" + hmac_key + "\n" + time + "\n" + signed_headers_string;
console.log("signing_string:\n" + signing_string);
var signatureBytes = CryptoJS.HmacSHA256(signing_string, hmac_secret);
var requestSignatureBase64String = CryptoJS.enc.Base64.stringify(signatureBytes);
console.log("requestSignatureBase64String:" + requestSignatureBase64String)
//将下面变量记录下来,在请求的Header中进行引用
pm.globals.set("sign", requestSignatureBase64String); //hmac签名
pm.globals.set("hmac_key", hmac_key); //hmac key
pm.globals.set("date", time); //请求时间
将 postman 切换到 Headers 标签下,输入下图中的4个 KEY-VALUE 对。最后,单击 send,即可看到调用 API 的返回结果。