AICon 深圳站聚焦 Agent 技术、应用与生态,大咖分享实战干货 了解详情
写点什么

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

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

关注

评论

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

GPT-4被破解!数智时代大突破!低代码开发平台揭秘:AI模型架构演进的利器

不在线第一只蜗牛

人工智能 低代码 模型调参 ChatGPT GPT-4

大学生活动社交小程序开发笔记(1)

CC同学

实例分享| anyRTC 部署安徽某市应急实战指挥平台

anyRTC开发者

音视频 快对讲 融合会议 视频监控 综合调度

MatrixOne悲观事务实现

MatrixOrigin

数据库 分布式 云原生 矩阵起源

Docker学习路线2:底层技术

小万哥

Docker 程序员 容器 后端 开发

C++之openFrameworks框架

芯动大师

你以为搞个jenkins流水线每天跑,团队就在使用CI/CD实践了?

DevOps在路上

DevOps 持续集成 jenkins

创新引领!矩阵起源荣获中国信通院双重认可!

MatrixOrigin

数据库 分布式 云原生 超融合 矩阵起源

对象存储、数据库、NAS、标注数据集,均支持元信息配置|ModelWhale 版本更新

ModelWhale

人工智能 数据库 云计算 数据分析 大模型

接口文档阅读方法:程序员必备的技术指南

Liam

程序员 接口文档 API

开源铸剑,五载匠心!Zilliz Cloud云服务盛装登场,引领向量数据库云时代!

Zilliz

阿里云 SaaS 云服务 Zilliz zillizcloud

es笔记六之聚合操作之指标聚合

Hunter熊

elasticsearch

Boundless Hackathon @Stanford 主题黑客松活动闭幕,一文回顾

鳄鱼视界

低代码技术分享官丨inBuilder使用有向无环图助力元数据工程依赖管理

inBuilder低代码平台

浅谈如何向上管理

光毅

团队管理 向上管理

一个提高go开发效率的秘密武器,一天开发完成一个极简版社区后端服务

vison

crud gorm gin #go 代码自动生成

《面试1v1》开篇

JavaPub

Java redis elasticsearch 面试 计算机

2023-07-11:给定正整数 n, 返回在 [1, n] 范围内具有 至少 1 位 重复数字的正整数的个数。 输入:n = 100。 输出:10。

福大大架构师每日一题

Go 算法 rust 福大大架构师每日一题

Boundless Hackathon @Stanford 主题黑客松活动闭幕,一文回顾

股市老人

如果AI能帮我 | 社区征文

六月的雨在InfoQ

AIGC ChatGPT 年中技术盘点 通义听悟

HDC.Cloud 2023 |华为云5大开源项目发布与更新,助力开发者实现应用创新

华为云开源

开源 云原生 HDC.Cloud

科兴未来|“追光逐电 才聚紫琅”光电产业创新创业大赛

科兴未来News

昇腾AI创新大赛2023开发者套件创新赛道专题解读篇

彭飞

重塑未来的1课:组装式交付新引擎——华为云智能化低代码平台

云计算 低代码 华为云 华为开发者大会

小程序开发这么简单,还需要App吗?

FinFish

小程序生态 APP开发 小程序开发

《面试1v1》HashMap

JavaPub

Java jdk JVM hashmap

团队如何选择合适的Git分支策略?

DevOps在路上

git DevOps 分支管理 DevOps工具

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