• Azure API Management(3)体验APIM Policy-流控/隐藏后端api url/修改response header


    本文介绍 Azure API Management 中policy使用案例:

    1. Inbound Processing Policy-增加API流控 : Limit call rate

    2.Outbound Processing Policy- 修改后端API返回值的header:Set headers

    3.Outbound Processing Policy-  隐藏后端真实的url :Mask urls in content


     

    视频演示:

    https://www.51azure.cloud/post/2020/8/10/azure-api-management-3-apim-policy-api-url-response-header

    图文演示:


     
    1. Inbound Processing Policy-增加API流控 : Limit call rate

    如果为一组API统一增加Policy,则选中“All Operations”-“Design”-“Add Policy”;

    增加Policy可以点击如下图按钮3,通过可视化界面添加,也可以通过按钮4进入代码编辑模式添加。

    如果为某一个特定的API增加Policy,则选中该API后在执行“Design”-“Add Policy”,如下图针对“GetSpeakers”这个API进行操作。

    本例子中选择Limit call rate:

    填写如下信息:表示每个IP地址,每10秒可以调用1次 API

    Number of calls:1

    Renewal period(in seconds):10

    Counter Key:IP Adderss

    测试API,连续两次点击send 按钮,第二次会出现如下提示:

    http/1.1 429 too many requests,同时会有多少秒之后try again的结果。


     
    2.Outbound Processing Policy- 修改后端API返回值的header:Set headers

    本案例将后端服务器返回的header中的x-powered-by隐藏掉,如下图所示:

    故而应该选择outbound processing中增加policy。

    选择 Set headers:

    此处可以修改,增加,删除 header,本例中,我们执行了删除操作。

    测试结果,返回值中没有了x-powered-by header。

    在 developer portal中测试,结果的response中同样没有了 x-powered-by header:


     
    3.Outbound Processing Policy-  隐藏后端真实的url :Mask urls in content

    本例中将原始后端API的url替换为 apim的url以达到保护后端真实api的目的,如下图所示,要隐藏掉如下图:“https://conferenceapi.azurewebsites.net:443”

    点击下图所示的编辑代码模式:

    点击 如下图所示show snippets按钮,则可以显示所有内置的policy:

    本例中选择“Mask urls in content”:

    将自动添加的内容移动到 outbound 节点下,如下图所示:

    测试结果,发现内容中的原始的“https://conferenceapi.azurewebsites.net:443”均已经被APIM 的url替换掉了。





    声明:

    点击可查阅本站文章目录 《文章分类目录》

    本站所有内容仅代表个人观点,如与官文档冲突,请以官方文档为准。

    可在本页面下方留言或通过下方联系方式联系我:

    微信:wxyusz;邮箱:shuzhen.yu@foxmail.com

    欢迎关注公众号“云计算实战”,接收最新文章推送。

  • 相关阅读:
    C#-WebApi-EF-CodeFirst-构建迁移命令说明
    webform-rdlc报表报错:未能加载文件或程序集Microsoft.SqlServer.Types版本错误的处理方案
    Observable与Subject
    使用ionic生成apk时遇到的错误:[ERROR] An error occurred while running subprocess cordova
    Socket通讯
    Transactions-事务
    Visual studio2017前端项目包管理从Borwer升级到libman
    NetCore-EFCore-DBfirst-同步数据库生成Model
    学习计划
    关于Vue2.5 less 版本过高
  • 原文地址:https://www.cnblogs.com/shuzhenyu/p/13467912.html
Copyright © 2020-2023  润新知