本文是APIM系列的一部分,完整内容参见:
- (视频)Azure API Management(1)创建Azure APIM并添加后端API
- (视频)Azure API Management(2)创建 Product/User/Subscription/体验Developer Portal
- (视频)Azure API Management(3)体验APIM Policy-流控/隐藏后端api url/修改response header
- (视频)Azure API Management(4)体验APIM 版本管理
- (视频)Azure API Management(5)缓存
- (视频)Azure API Management(6)Validate JWT Token
本文介绍如下内容:
-
管理员(也就是API的提供者)从Azure Portal 导入后端API
-
管理员在Azure Portal 对导入的API进行设置,比如增加流控等功能
-
管理员在Azure Portal创建一个包含一组或多组API的产品并发布
-
管理员在Azure Portal发布开发人员门户(通常该步骤仅执行一次)
-
用户从开发人员门户自主注册或者从管理员从Azure Portal上注册用户
-
管理员从Azure门户上为用户创建订阅
-
用户在开发人员门户学习如何调用API并做测试
-
用户在自己的业务系统中调用API
视频介绍:
图文介绍:
几个重要的概念:
1. API
导入或者在Azure Portal上创建的 一组API或者多组API,例如导入了一组订单相关API和一组库存相关API;
2.产品
产品包含至少一组API,通常产品把多组API打包在一起,形成一个包含多种功能的一个集合,例如:定义了一个产品“进销存”,该产品包含一组 订单相关的API和一组库存相关的API;
3.用户
这里的用户通常指使用API Management 的人员,其中包含要调用你发布的API的开发人员。
4.组
组指的用户组,一个组可以包含多个成员,也就是包含多个“用户”,系统内置了“Administrator”,“Developer”,“Guests”三个组。
5.订阅
订阅决定了哪个”用户“可以调用哪个“API”或者哪个“产品”。
订阅是绑定到“用户”上的,订阅能控制某个API或某个产品。
6.开发人员门户(developer portal)
通常情况下,开发人员门户是提供给“用户”,也就是要调用你API的人员使用的一个门户网站。
用户可以在这个网站维护自己的账号信息,查看自己的订阅信息,查看API文档/在线测试API。
默认情况下,他的url后半部分为:developer.azure-api.net;
可以在开发人员门户上提交注册信息,根据配置,可能需要审核或自动完成审核,然后便成了“用户”,用户可以根据API及产品是否需要订阅或者订阅权限调用对应的API。
在开发人员门户上自主注册的用户,默认自动分配到“Developer”组中。
通常整体的使用流程是:
-
管理员(也就是API的提供者)从Azure Portal 导入后端API
-
管理员在Azure Portal 对导入的API进行设置,比如增加流控等功能
-
管理员在Azure Portal创建一个包含一组或多组API的产品并发布
-
管理员在Azure Portal发布开发人员门户(通常该步骤仅执行一次)
-
用户从开发人员门户自主注册或者从管理员从Azure Portal上注册用户
-
管理员从Azure门户上为用户创建订阅
-
用户在开发人员门户学习如何调用API并做测试
-
用户在自己的业务系统中调用API
1.管理员(也就是API的提供者)从Azure Portal 导入后端API
上一讲分享的内容中,我们已经完成了API的导入,本文不再赘述,如果您尚未完成API导入,请参照《Azure API Management(1)Create APIM And Add First API,创建Azure APIM并添加后端API》
2.管理员在Azure Portal 对导入的API进行设置,比如增加流控等功能
流控等功能我们在以后的章节中介绍,本文可以跳过这个步骤。
3.管理员在Azure Portal创建一个包含一组或多组API的产品并发布
注意:
3处的状态为“未发布”,未发布的产品不会在开发者门户中看到。稍后需要执行”发布产品“操作后,才会出现在开发者门户中;
3处的“需要订阅”如果不勾选,则用户在开发者门户中无需订阅即可进行该产品关联api的调用;
5处的API可以选择多个或者一个;
产品创建完成后,默认的访问控制组在“Administrator”中,如果需要被“开发者么户”中创建的用户访问,则需要添加“developers”组,因为从门户自主注册的用户,默认为“developers”组:
发布产品,只有发布后的产品,才会显示在开发人员门户中:
4.管理员在Azure Portal发布开发人员门户(通常该步骤仅执行一次)
注意:如果不开启cors,则用户在开发人员门户上无法测试api调用。
5.用户从开发人员门户自主注册或者从管理员从Azure Portal上注册用户
点击开发人员门户可以进入开发人员门户,此时是管理员默认登录对门户的编辑模式,需要切换浏览器,才能以新的用户session访问开发人员门户:
点击右上角注册:
默认注册使用邮箱和密码方式:
在邮箱中查收验证邮件并验证邮箱:
登录开发人员门户:
登录成功,看到如下页面:
查看profile:
注意,此时新用户并没有任何subscription,稍后我们将在Azure Portal 为用户添加订阅。
6.管理员从Azure门户上为用户创建订阅
在Azure Poral中查看刚注册成功的用户:
用户即开发人员,也就是要使用你api的人员;
从developer portal自主创建的用户,默认在 “developer”组中。
为用户创建分配订阅:
在用户页面点击订阅,添加订阅:
新建订阅可以产品级别或者API级别的订阅,本例选择产品级别的订阅,并选择刚才发布的产品。
在下拉列表中选择刚才发布的产品,然后创建订阅。
用户可以在开发人员门户中查看管理员为你分配的订阅:
在developer portal 中查看分配的订阅:
7.用户在开发人员门户学习如何调用API并做测试
在开发人员portal中进行api测试:
subscription key 在创建时是有作用范围的,本例中,我们将subscription key 的权限绑定到 “new-product”上,因此,该key在其他product或者其为包含在“new-product”里的api,都是无效的:
如下图,我们用subscription key对 echo api进行访问,结果为 401:
8. 用户在自己的业务系统中调用API
针对多语言的示例代码,将代码集成到自己的业务系统中,完成API调用开发。