本文是APIM系列的一部分,完整内容参见:

  1. (视频)Azure API Management(1)创建Azure APIM并添加后端API
  2. (视频)Azure API Management(2)创建 Product/User/Subscription/体验Developer Portal
  3. (视频)Azure API Management(3)体验APIM Policy-流控/隐藏后端api url/修改response header
  4. (视频)Azure API Management(4)体验APIM 版本管理
  5. (视频)Azure API Management(5)缓存
  6. (视频)Azure API Management(6)Validate JWT Token

 

 


 

本文介绍如下内容:

创建API Management 实例;

向API Management 添加一组后端API;

体验使用Azure Portal 通过APIM测试调用后端API;

体验使用Postman调用 被APIM保护(即为API开启订阅功能)的后端API;

去掉APIM对API的订阅保护;

 

视频演示讲解:

 

 

图文步骤:

 


 
 
1.创建APIM实例:

 

创建需要几分钟时间,创建完成转到资源可看到如下界面:

 

 


 
2.向API Management 添加一组后端API;

向apim添加api后,将使用apim的url 代替原有后端api的url进行访问。

本文使用了微软官方提供的测试api:https://conferenceapi.azurewebsites.net/?format=json

我们可以先看下这个由微软提的测试api:

将url中的?format=json去掉,可以看到如下页面,改页面描述了这一组api中的每个api的请求类型(get/post),参数,返回值等等。

 

我们测试其中某个get请求,以get speakers 为例,在url中直接输入如下地址,即可得到speakers的列表:

https://conferenceapi.azurewebsites.net/speakers

 

 

 

 

 

点击api标签,点击添加 openapi:

 

 

输入如下地址:https://conferenceapi.azurewebsites.net/?format=json

可以为api增加一个后缀,例如本例中使用了“sean-first-api”作为后缀:

 

添加成功后,可以看到如下界面:

 

 

3.体验使用Azure Portal 通过APIM测试调用后端API;

可以在Azure Portal 对单个API进行测试,例如我们对get speakers 进行测试,点击要测试的API,点击“Test”,点击“Send”即可得到从后端API返回的结果:

注意,在此过程中,可以修改header,查询参数等;

 

 

得到结果如下:

 

 


 
4.体验使用Postman调用 被APIM保护(即为API开启订阅功能)的后端API;

在请求header中我们注意到如下内容:

Ocp-apim-subscription-key:xxxxxxx-xxxxx

这个key是APIM对API增加的 一种“保护”,防止未经授权的客户端随意对API进行访问。

 

 

我们也可以在浏览器中尝试get speakers api, 原始后端api 可以直接返回结果,使用apim后,则返回:

{ "statusCode": 401, "message": "Access denied due to missing subscription key. Make sure to include subscription key when making requests to an API." }

 

在订阅页面,我们能找到能够顺利调用该api的订阅,将其中的“built-in all access subscription”中的 key 添加到 request header 的 Ocp-apim-subscription-key 里即可访问apim保护的api,

如下图,在postman中设置header,然后可以正确返回结果。

 

 


 
5.去掉APIM对API的订阅保护;

如果你的api是要公开给公众使用或其他原因就无需订阅保护,则可以在 api 上setting里,将需要订阅的选框去掉,保存后,即可无需 Ocp-apim-subscription-key  就能正常访问了。