【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

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

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

关注

评论

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

VS Code 如何设置大小写转换快捷键

AlwaysBeta

vscode

详细架构设计文档

Anlumina

#架构实战营

Java 数据持久化系列之池化技术

程序员历小冰

MySQL 持久化 28天写作 池化技术 12月日更

元宇宙很好,但VR开发者不准备停留在这里

白洞计划

学习总结 2021.12.30

mj4ever

学习笔记

架构实战营模块三作业

lchx08

「架构实战营」

ALC北京发起人 姜宁:通过开放与协作,我们可以实现一个人想都不敢想的事情 I OpenTEKr 大话开源 Vol.6

OpenTEKr

大话开源

费用节省 50%,函数计算 FC 助力分众传媒降本增效

阿里巴巴云原生

阿里云 云原生 合作 函数计算FC 分众传媒

深入理解一下Python中的面向对象编程

宇宙之一粟

Python 面向对象 12月日更

最近火热的web3到底是什么?

石云升

区块链 28天写作 12月日更 web3

有趣的灵魂万里挑一:从智能座舱看汽车进化史

脑极体

【架构实战营】模块三:知识点总结

wgl

「架构实战营」

瞰见 | 开源,会不会变成开源创业的焦油坑?

OpenTEKr

狄安瞰源

一个cpp协程库的前世今生(一)缘起

SkyFire

协程 cpp cocpp

架构实战营4期-模块3作业

木几丶

「架构实战营」

从人工到智能!百度AI开发者大会分论坛,探寻国球乒乓背后的AI之路

百度大脑

人工智能

百度智能云发布零碳园区解决方案,助力实现双碳目标

百度大脑

人工智能

阿里巴巴超大规模 Kubernetes 基础设施运维体系揭秘

阿里巴巴云原生

阿里云 Serverless Kubernetes 云原生 ASI

Hoo研究院币 | 币海寻珠——加密行业即将到来的发售事件

区块链前沿News

加密货币 虎符 虎符交易所

架构实战 模块三作业

mj4ever

架构实战

架构实战营:模块三作业

Geek_93ffb0

「架构实战营」

引领人工智能技术自立自强 百度吴甜获评“首都最美巾帼奋斗者”

百度大脑

人工智能「

Golang中文件的基本操作

liuzhen007

Go 28天写作 Go 语言 12月日更

第三模块学习总结

Anlumina

#架构实战营

架构实战营 - 模块 3 - 作业

Pyel

「架构实战营」

百度飞桨EasyDL桌面版正式上线,没网也能训练AI!

百度大脑

人工智能

Git基础 |打tag

xcbeyond

git 28天写作 tag 12月日更

【架构实战营】模块三:命题作业

wgl

「架构实战营」

外包学生管理系统详细设计文档

糖糖学编程

架构实战营

一口气搞懂【Linux内存管理】,就靠这60张图、59个问题了

奔着腾讯去

内存泄露 内存管理 Linux Kenel 内存映射 内存池

第三周学习总结

糖糖学编程

架构实战营

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