写点什么

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

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

关注

评论

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

Druid 连接池源码阅读 06

石小天

学Python运维,这知识点你肯定会遇到,【必收藏之】nginx 域名跳转相关配置

梦想橡皮擦

5月月更

熊磊:成功移植OpenHarmony到多套开发板,是最开心的事

OpenHarmony开发者

开发板 OpenHarmony

有数BI大规模报告稳定性保障实践

网易数帆

大数据 BI 网易 稳定性保障

FinClip小程序里如何安全使用SVG

Speedoooo

rust SVG 前端框架 小程序容器

网站开发进阶(六十八)CSS3媒体查询@media

No Silver Bullet

5月月更 媒体查询 设备自适应 hsl

推荐几个机器学习的好资源

AIWeker

人工智能 深度学习 5月月更

前端常用的站点导航

今天去哪玩

OpenHarmony 3.1 Release版本关键特性解析——Enhanced SWAP内存管理

OpenHarmony开发者

内存管理 OpenHarmony

2022年5月中国数据库排行榜:openGauss 黑马首登顶,AntDB 冲进20强

墨天轮

数据库 opengauss TiDB oceanbase 神通

Nebula Graph|如何打造多版本文档中心

NebulaGraph

数据库 图数据库 NebulaGraph

FFmpeg介绍

Loken

音视频 5月月更

层层剖析一次 HTTP POST 请求事故

vivo互联网技术

HTTP CORS XSS 跨域 waf

RocketMQ—Producer(五)路由队列选择

IT巅峰技术

架构 RocketMQ java

银行RPA趋向主动触发流程,补足营销场景执行末端的渠道协同能力

易观分析

银行 市场营销

druid源码学习六

Nick

jdk JMX Druid

战“码”先锋直播预告丨如何成为一名优秀的OpenHamrony贡献者?

OpenHarmony开发者

OpenHarmony 贡献代码

AIRIOT物联网低代码平台如何配置三菱PLC驱动?

AIRIOT

物联网 PLC 驱动配置

javascript 中搜索数组的四种方法

CRMEB

Magento 和 WordPress 的区别

海拥(haiyong.site)

WordPress 5月月更

Qt软件开发_解决中文路径无法识别问题

DS小龙哥

5月月更

Linux下玩转nginx系列(五)---nginx实现负载均衡

anyRTC开发者

nginx Linux 负载均衡 音视频

百问百答第38期:关于nginx监控,我们这样做

博睿数据

博睿数据 nginx监控

金融任务实例实时、离线跑批Apache DolphinScheduler在新网银行的三大场景与五大优化

白鲸开源

Apache 大数据 开源 DolphinScheduler workflow

稳扎稳打步步为营 英特尔GPU将在消费市场和数据中心全面开花

科技新消息

一种经典的客户关系管理系统(CRM)订单模型的设计与实现

汪子熙

CRM SAP 客户关系管理系统 5月月更 订单模型

Dockerfile 的最佳实践 | Dockerfile 你写的都对么?

xcbeyond

最佳实践 镜像 Dockerfile

CUDA优化之PReLU性能调优

OneFlow

性能优化 cuda PReLU 朴素实现

总结

Geek_36cc7c

Kubernetes下web服务的性能测试三部曲之三:横向扩容

程序员欣宸

Java Kubernetes 5月月更

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