写点什么

RESTful 服务的版本管理经验

  • 2013-09-17
  • 本文字数:633 字

    阅读完需:约 2 分钟

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

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

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

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

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

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

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

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

2013-09-17 02:383484
用户头像

发布了 256 篇内容, 共 86.1 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

区块链ETF软件的开发

北京木奇移动技术有限公司

区块链技术 软件外包公司 ETF

深入理解 Apache Calcite ValcanoPlanner 优化器

端小强

Calcite

华为FlexusX与Docker+Nginx的高效整合之路

YG科技

遥遥领先的华为云Flexus云服务器X它来了~~~~

YG科技

华为云Flexus X实例部署k3s与kuboard图形化管理工具

YG科技

区块链RWA软件项目的开发

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

Shopify接口对接的详细流程

北京木奇移动技术有限公司

跨境电商 软件外包公司 shopify开发

AI口语App的开发流程

北京木奇移动技术有限公司

AI智能体 AI口语练习 APP外包公司

华为Flexus云服务器X实例实测-堡垒机jumpserver

YG科技

Flexus X初体验之部署xxl-job - 分布式任务调度平台

YG科技

区块链项目外包开发流程

北京木奇移动技术有限公司

区块链技术 智能合约开发 软件外包公司

镜舟科技荣获 IT168 2024年度创新产品奖!

镜舟科技

开源 分析型数据库 StarRocks IT168 物化视图

深度探究 Apache Calcite SQL 校验器实现原理

端小强

Calcite

探索未来算力新纪元——带你体验Kafka、Zookeeper集群安装

YG科技

使用sysbench对华为云Flexus服务器X做Mysql应用加速测评

YG科技

Flexus云服务X实例应用,通过QT连接华为云MySQL,进行数据库的操作,数据表的增删改查

YG科技

从AI远见到中国速度:Scaling Law发现者为何引全球热议?

脑极体

AI

2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n 和 m,以及一个正整数 k。 如果 nums1 数组中的元素 nums1[i] 能被

福大大架构师每日一题

福大大架构师每日一题

还没分享过小米的面经呢,今天它来了

王中阳Go

Go 面试

华为云Flexus X加速Redis案例实践与详解

YG科技

Flexus云服务X实例安装ODBC驱动,在ODBC中建立MySQL数据库连接,通过QT连接云数据库

YG科技

《计算机组成及汇编语言原理》阅读笔记:p160-p176

codists

计算机组成及汇编语言原理

RESTful服务的版本管理经验_SOA_Jan Stenberg_InfoQ精选文章