2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:383501
用户头像

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

关注

评论

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

一文简述:SRv6基本原理

穿过生命散发芬芳

7月月更 SRv6

云原生编程挑战赛火热开赛,51 万奖金等你来挑战!

阿里巴巴云原生

阿里云 云原生编程挑战赛

克服“看牙恐惧”,我们用技术改变行业

Lily

私有化部署的即时通讯平台,为企业移动业务安全保驾护航

BeeWorks

跨区域网络的通信学习静态路由

flow

签约计划第三季

字符设备驱动结构

贾献华

7月月更

上海交大牵手淘宝成立媒体计算实验室:推动视频超分等关键技术发展

阿里巴巴大淘宝技术

音视频 音视频技术

GIS数据漫谈(六)— 投影坐标系统

ThingJS数字孪生引擎

阿里云 Serverless 异步任务处理系统在数据分析领域的应用

阿里巴巴云原生

阿里云 Serverless 数据分析 云原生

远光软件获得阿里云产品生态集成认证,携手阿里云共建新合作

阿里巴巴云原生

阿里云 云原生 合作

以数字化转型为契机,3C企业如何通过SRM供应商云协同平台实现高效协同?

数商云

数字化转型 企业数字化 SRM系统

认识中小型局域网WLAN

flow

签约计划第三季

[网络]跨区域网络的通信学习IPv4地址的分类和计算

flow

签约计划第三季

[网络]跨区域网络的通信学习路由表的工作原理

flow

签约计划第三季

熊市下PLATO如何通过Elephant Swap,获得溢价收益?

西柚子

多线程与高并发—— 源码解析 AQS 原理

王小凡

Java 程序员 AQS JVM 多线程

顿悟!百度强推的Redis天花板笔记,原来数据库是这样理解的

冉然学Java

分布式 redis' 技术专题合集 #java redis 底层原理

图的连通性之普里姆算法和克鲁斯卡尔算法

乔乔

7月月更

一文读懂Okaleido Tiger近期动态,挖掘背后价值与潜力

小哈区块

架构实战营第8模块作业

Geek_53787a

认识中小型局域网MAC地址及分类

flow

8月月更

为什么客户支持对SaaS公司很重要?

Geek_da0866

深圳线下报名|StarRocks on AWS:如何对实时数仓进行极速统一分析

StarRocks

数据库

直播|StarRocks 技术内幕 :低基数全局字典优化

StarRocks

数据库

MQTT over QUIC:下一代物联网标准协议为消息传输场景注入新动力

EMQ映云科技

车联网 物联网 IoT mqtt 弱网

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