zoukankan      html  css  js  c++  java
  • Azure API Management(4)体验APIM 版本管理

    本文介绍如下内容:

    APIM中的三种版本控制scheme;

    案例:在APIM中配置API的版本控制;

    案例:使用postman/Azure Portal/Developer Portal 测试带版本号的API;


     

    视频介绍:

    https://www.51azure.cloud/post/2020/8/10/azure-api-management-4-apim-api-version

     


     

    图文介绍:


     
    APIM中的三种版本控制scheme;

    当后端API出现大版本变更时,需要对APIM发布的API增加版本管理。在API组上点击“...”按钮,点击“add version”即可添加新的API版本。

    API 版本管理有三种版本结构,分别为 Path, Query String 和 Header,

    其中Path 和 Query String 体现在URL中,通过请求的url,我们能清楚的看到调用的是哪个版本的api,

    Header 的方式则在URL中“隐藏了”调用的API版本信息。

    对于这三种方式,您可以选择任意一种,也建议一旦选择了某一种,再接下来的V2/V3及后续的版本中,使用同样的版本结构。

    第一种方案:Path,

    假设增加的版本为v1,则Version Identifier 设置为v1,

    使用该方案,需要在URL中增加/v1,如下图所示:

    第二种方案:Header,

    假设增加的版本为v1,则Version Identifier 设置为v1,同时需要设定Version header,该值为自定义的key,可以使用例如“api-version”,“api-v”等等字段,

    在使用时,需要在header中增加相应的key 和value(version identifier)。

    第三种方案:Query string,

    假设增加的版本为v1,则Version Identifier 设置为v1,同时需要设定Version query parameter,该值为自定义的key,可以使用例如“api-version”,“api-v”等等字段,

    在使用时,需要在url中增加相应的查询参数,格式为   ?version query parameter=version identifier,如下图所示:?api-version=v1

    版本增加后,APIM会自动为我们创建一个Original的API版本,在用户未显示指定调用的API版本时,默认使用该版本,以保证用户之前的业务逻辑正常运行。

     

     
    案例:在APIM中配置API的版本控制;

    本例使用了Header方式,为了便于演示header 中 version信息对于后端API的调用,我们在Outbound processing中增加了Set headers policy,

    对于 Original ,我们增加了 api-version =original的header;对于V1,我们增加了api-version=v1的header;

    这样设置之后,如果用户在request header中设置api-version=v1,则我们会在response 的header中得到api-version=v1的值,如果用户没有设置request中的api-version,则response的header中应该返回api-version=original。

    对于 Original ,我们增加了 api-version =original的header;

    对于V1,我们增加了api-version=v1的header;


     
    案例:使用postman/Azure Portal/Developer Portal 测试带版本号的API;

    在postman中调用 apim的api,不加api-version信息,则默认调用的是original版本:

    在postman中调用 apim的api-version=v1的api,则默认调用的是v1版本:

    如果版本号标定错误,如下图故意标定了V3的版本,但实际上APIM中并没有V3的版本,则会返回404错误。

    在Azure Portal中测试,调用V1,默认在header中增加了api-version=v1的设置,

    则在结果中返回的是由V1的后端API返回的结果:

    在开发人员门户测试APIM的版本功能:

    调用V1 版本的API:

    developer portal的测试页面自动在header 中增加了 api-version :





    声明:

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

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

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

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

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



    知识共享许可协议

    本作品由Sean Yu 采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
    欢迎转载、使用、重新发布,但务必保留文章链接:https://www.51azure.cloud,且不得用于商业目的。

  • 相关阅读:
    s3c2440 移值u-boot-2016.03 第6篇 支持mtd yaffs 烧写
    s3c2440 移值u-boot-2016.03 第5篇 支持dm9000 识别
    s3c2440 移值u-boot-2016.03 第4篇 支持NAND flash 识别
    [转]MySQL数据库引擎
    [转]史上最全的MSSQL复习笔记
    [转]解析json:与array,list,map,bean,xml相互转化
    [转]Web程序员必须知道的 Console 对象里的九个方法
    大数据Spark超经典视频链接全集
    王家林 大数据Spark超经典视频链接全集[转]
    [转]WEB开发者必备的7个JavaScript函数
  • 原文地址:https://www.cnblogs.com/shuzhenyu/p/13470837.html
Copyright © 2011-2022 走看看