写点什么

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

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

关注

评论

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

第 2 周作业

老元宵

你以为阿里真的取消周报了?

Ian哥

28天写作

我用PHP写的第一个Hello world

熊斌

28天写作

【总结】产品经理训练营 | 02 产品思维和产品意识(上、中)

阿席达卡。

【年度重磅】2020华为云社区年度技术精选合集,700页+免费下载!

华为云开发者联盟

数据库 AI 云原生 物联网 华为云

Android Styling System

Changing Lin

android

数据库覆盖式数据导入方法:部分和完全

华为云开发者联盟

数据库 sql 数据 DWS 覆盖式导入

年底想跳槽?先想清楚自己要什么。

一笑

面试 工作 28天写作

信任是一种需要牺牲效率持续发出的信号

Justin

心理学 信任 市场营销 28天写作

智能building 之智慧城市

张老蔫

28天写作

从定义到AST及其遍历方式,一文带你搞懂Antlr4

华为云开发者联盟

Java AST 语言 antlr4 语法分析器

趋势预测:2021年五大流行的编程语言

禅道项目管理

Java php python 爬虫 趋势

产品思维和产品意识-利益相关方学习总结

mas

GNUCash 4: 我的使用经验

lidaobing

GNUCash 28天写作

智能汽车如何赚钱? (28天写作 Day19/28)

mtfelix

商业模式 28天写作 智能汽车 软件定义汽车

娄底携手浪潮,打造了智慧城市建设的“娄底样板”

计算机网络学习第一课

落曦

第二周作业

Geek_6a8931

GO 进阶学习笔记

zach

微服务 Go 语言

屏幕共享功能的应用

anyRTC开发者

android 音视频 WebRTC 在线教育 视频会议

30+岁、没转管理、加不动班,我的竞争力从哪里来?

博文视点Broadview

八大案例带你了解图数据库如何洞察数据间关联价值

NebulaGraph

图数据库 图数据库实战

利益相关方分析-公司及团队维度

梁媛

产品经理

产品经理训练营第二章作业——利益相关者

阿波

面试官常问的垃圾回收器,这次全搞懂

Silently9527

Java JVM 垃圾回收 GC

红帽架构师:为什么KubeEdge是2020年我最喜欢的开源项目?

华为云原生团队

开源 云原生 边缘计算 边缘技术

keepalived 实现Nginx高可用安装

庞小辉

架构师训练营-大作业:物流系统架构设计

晴空万里

架构师训练营第2期

Kubernetes Pod篇:带你轻松玩转Pod

xcbeyond

Kubernetes pod 28天写作 Kubernetes从入门到精通 服务编排

【图文并茂,点赞收藏哦!】重学巩固你的Vuejs知识体系

我是哪吒

程序员 面试 Vue 大前端 Web

开发的必杀技:Git 的分支管理

华为云开发者联盟

git Linux 分支

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