写点什么

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

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

关注

评论

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

腾讯云TDSQL在PostgreSQL领域的‘‘再次突破’’

腾讯云数据库

tdsql 国产数据库

高成长、高潜力,火线安全入选2021中国新锐技术先锋企业20强!

火线安全

使用Amazon CDK部署基于Amazon Fargate的高可用、易扩展的Airflow集群

亚马逊云科技 (Amazon Web Services)

计算

使用CRM系统改善客户关系的方法

低代码小观

企业管理 CRM ERP CRM系统 企业管理工具

技术解析 | 即构移动端超分辨率技术

ZEGO即构

计算机视觉 音视频 视频超分

企业聊天APP-有什么作用,可以带来哪些便利?WorkPlus即时通讯

BeeWorks

拍乐云首发音视频「分组讨论」开放能力,开启线上群聊互动新玩法

拍乐云Pano

音视频 RTC 视频会议 泛娱乐 分组讨论

Linux之du命令

入门小站

Linux

实现分区表性能提升超10倍,解密TDSQL PG版开源升级特性

腾讯云数据库

tdsql 国产数据库

TDengine在蓝深远望电机物联网监测预警与预测性维护平台中的应用

TDengine

数据库 大数据 tdengine 物联网

知识中台,驱动产业智能化升级

百度大脑

人工智能

全面容器化之后,来电科技如何实现微服务治理?

阿里巴巴云原生

阿里云 微服务 云原生 实践

Mybatis如何执行批量操作

编程江湖

mybatis

Tomcat系统架构分析-Service

编程江湖

tomcat

在线正则表达式可视化测试工具

入门小站

工具

理清逻辑,确保云原生时代应用开发的全生命周期安全

华为云开发者联盟

网络安全 安全 应用开发 安全防守

前端开发之VUE基础面试题分享

@零度

Vue 前端开发

趋势:2022 年 AI 五大预测

BeeWorks

大数据开发之Hadoop高频面试题

@零度

大数据 hadoop

青藤成功举办“ATT&CK应用发展论坛”,并发布《ATT&CK框架实践指南》

青藤云安全

开源数据库TDSQL PG版再升级:分区表性能提升超10倍

腾讯云数据库

tdsql 国产数据库

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

针对jQuery的优化方法有哪些

编程江湖

jquery

云原生+国产化,腾讯云数据库不做选择题

腾讯云数据库

tdsql 国产数据库

建议收藏 | SpringBoot 元数据配置原来可以这么玩!

李尚智

spring springboot SpringBoot 2 java 编程 1月月更

【Redis集群原理专题】分析一下相关的Redis服务分片技术和Hash Tag

码界西柚

redis redis cluster redis架构 1月月更

怎么访问到别人的电脑?

你?

增效降本开源节流,2022年技术趋势前瞻(异步编程/容器技术)

刘悦的技术博客

容器 性能 异步IO 异步削峰 成本优化

隐喻回顾会

Bruce Talk

敏捷 Agile 回顾会 Coach/Facilitate

4种高速安全混合云解决方案,助力您的云迁移之旅!

亚马逊云科技 (Amazon Web Services)

计算

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