本文将快速引导您如何在API网关中,发布后端服务为HTTP类型的API,并如何使用“阿里云APP“认证中的AppKey和AppSecret进行调用。
1 概述
您需要依次完成以下步骤:
创建分组
定义API
创建应用和API授权
调试API
调用API
2 创建分组
API分组是API的管理单元,因此需要先创建API分组,然后在分组下创建API。
步骤1 创建分组
在开放API
菜单中选择分组管理
,选择Region,点击创建分组;在弹窗页面,选择分组实例,输入分组名称以及Basepath,点击确定。

步骤2 查看分组信息
在分组列表查看创建好的分组,点击名称可以进入到详情页,进行绑定域名、修改基本信息、切换实例类型等动作。
API分组会自动创建公网二级域名,此二级域名仅供调试使用,如果直接访问此域名,每天有1000次的限制(海外Region及中国香港限制100次/天)。因此建议您在使用时为分组绑定您的独立域名后使用。在本示例中使用此域名进行测试。
3 创建API
在开放API
菜单中选择API列表
,在上一步中创建的API分组所在Region,点击创建API。
步骤3 API基本信息
本环节是定义了API基本信息,包括API分组、API名称、安全认证方式、API类型、和描述等。选择刚刚创建的分组,写入对应配置,主要选择阿里云APP认证,禁止AppCode认证。

步骤4 定义API请求
本环节是定义client端(如浏览器、手机APP或其他的业务系统)如何请求您的API,需要确定的内容包括请求类型、协议、请求Path、HTTP Method、入参请求模式、和入参定义。在本例中,请求path中配置“/web/cloudapi“,并且未配置任何的入参。
步骤5 定义API后端服务信息
本环节是定于API网关收到client端的请求后,进行何种参数映射、处理,以及连接哪个后端地址。本例中的后端服务类型选择HTTP(S)服务,此后端服务可以在阿里云上或者互联网上的任何可以访问到的地址,其他的后端服务类型可以参考其他帮助文档。按照页面要求完成后端地址、请求Path信息。

步骤6 定义返回结果
本环节用于API帮助文档的自助生成,帮助API使用者更好理解。可以设置返回ContentType、返回结果示例和失败返回结果示例。本例中不涉及到这部分,因此可以点击创建
按钮。
步骤7 发布API
在上一环节保存成功后,会提示如下信息。您对API进行过任何的配置,都需要发布到对应的环境(API网关内置了三个环境:“线上“、“预发“、“测试“)中才能够生效。本例中,点击发布
,按照控制台页面的提示,把此API发布到“线上“环境。

4 创建应用和API授权
应用(APP)是您调用API服务时的身份。在本例中的步骤3中,认证方式选择的是“阿里云APP认证“,因此在API发布后,还需要创建APP,并将APP和API的对应关系建立好,才能够正常访问。
步骤8 创建应用
在调用API
菜单中选择应用管理
,创建一个APP,如下图所示。可以看到阿里云APP下有两种认证方式,AppKey和AppCode。AppKey方式有一组AppKey和AppSecret,您可以理解为账号密码,调用API的时候需要将AppKey做参数传入,AppSecret用于签名计算,网关会校验这对密钥对您进行身份认证。关于阿里云APP的更多描述可见此文档使用简单认证(AppCode)方式调用API。

步骤9 对API进行授权
在API列表
,找刚创建好的API,在操作项中,点击授权
,出现如下的弹出框。注意环境需要选择已经进行了发布的环境,如本例中的“线上“。搜索之前创建的应用,点击添加;点击确定,提示授权成功,即成功授权

5 调试API
API网关提供了在线调试的功能,因此一般建议在API网关上完成API配置之后,可以先通过此功能确认API是否配置成功,然后再通过client端进行调用。
步骤10 调试API
在API列表页
,点击前面步骤中新增的API,进入详情页,点击调试API
进入如下页面。如果您定义了API的入参,在调试API页面中也可以输出不同的参数查看API的执行情况。
在调试API中,注意认证方式选择已经授权的APP,并且stage选择此APP授权好的环境,如果选择错误的stage,可能会造成API调试失败。本例中选择RELEASE(线上)。

6 调用API
通过上述步骤,您已经创建API、创建APP、建立了授权关系,调试API完成,并将API发布到线上环境,本阶段将会模拟如何通过调用API网关提供的SDK,来在您的业务系统中调用发布好的API。
步骤11 调用API
1、在调用API
菜单中找到已授权API的SDK
,可以下载到此应用的SDK,或其他语言调用示例。

本例中,以Node.js的SDK示例为例,继续介绍如何调用。
首先通过npm安装API网关的Node.js示例SDK,$ npm install aliyun-api-gateway -S
;
其次在如下的代码片段中,将YOUR_APP_KEY和YOUR_APP_SECRET填写为本例中创建的APPKey的对应信息;
// 导入网关nodejs sdk
const Client = require('aliyun-api-gateway').Client;
// 实例化一个认证对象,入参需要传入授权应用的AppKey,AppSecret
const client = new Client('YOUR_APP_KEY','YOUR_APP_SECRET');
async function get() {
// API分组的域名,测试阶段可以使用公网二级域名,但有一定的访问限制,建议正式环境绑定您的独立域名
var url = 'YOUR_GROUP_DOMAIN';
var result = await client.get(url, {
//请求响应体类型部分 API 可以根据指定的响应类型来返回对应数据格式,建议手动指定此请求头
headers: {
accept: 'application/json'
},
});
console.log(JSON.stringify(result));
}
get().catch((err) => {
console.log(err.stack);
});
执行效果如下图所示:
2、用curl来调用API,在应用管理找到授权的APP,点击进入获取APPCode。然后按照以下示例调用API。
curl -i --get --include 'http://test.com/' -H 'Authorization:APPCODE 你自己的AppCode'
执行结果如图:
