zoukankan      html  css  js  c++  java
  • RESTful服务的版本管理经验 (转)

    原文:RESTful服务的版本管理经验

    最近,Howard Dierking将在设计NuGet API的下一个主要修订版(v3)时新学到的经验,与他在大约一年前的观念做了对比,并写道:使用服务器驱动的内容协商,但借助与备选版本和表示格式的链接来提升响应能力,从而让客户端根据其需要选择访问哪个URI。

    通过对带有重要扩展需求的真实应用API,以及若干不同客户端进行对比,Howard发现在他最初的想法中,过多地相信了服务器驱动内容协商的保证。而现在他发现,这会把客户端过多地交道了服务器手中:客户端能够请求一份特定的表示,但它会得到什么,则依旧取决于服务器。

    Howards发现了另一种选择——一种混合方式——它基于服务器驱动内容协商并链接到规范资源,但通过链接到表示的其它变体进行增强。这样,客户端就可以根据自身需求,以及链接提供的元数据,来选择访问哪个URI。

    带着这样的推测——版本控制依赖于统一接口的哪部分发生了变化——Howard将新的版本管理策略总结如下:

    1. 如果只是增加内容,那么放心地将它们增加到表示即可。因为客户端将忽略那些它们并不理解的东西。
    2. 如果要对表示做出重大改变,或是改变底层资源的含义,那么使用新名字(URI)创建一份新的资源。
    3. 这样使用内容协商:让它提供通往资源的优化路径,但永远赋予客户端做出不同选择的控制权(通过链接的方式)。

    上述三点中,只有第一点与去年的观点相同;而另外两点则根据他目前的想法进行了修订。

    Howard Dierking是一位参与NuGet API(微软开发平台的包管理器)项目的开发者。

    查看英文原文:Experiences Versioning a RESTful Service

  • 相关阅读:
    【hive】null值判断
    【hive】where使用注意的问题
    【hive】关于浮点数比较的问题
    【hive】在alter修改元数据的时候报错 mismatched input 'xxxxx' expecting KW_EXCHANGE
    破解诅咒心法
    泡妞心法
    awk高级
    排除故障的总结
    机房运维相关面试题
    统计流入流出流量
  • 原文地址:https://www.cnblogs.com/ajianbeyourself/p/4302376.html
Copyright © 2011-2022 走看看