QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

Atom 的价值?

  • 2008-11-03
  • 本文字数:962 字

    阅读完需:约 3 分钟

在回应 How to GET a Cup of Coffee 这篇文章时,Bill Burke, RESTeasy (一个 JAX-RS 实现)的主要开发者之一,这样谈到:

我始终没能被 Atom 的价值触动,在这个特例里,它又比”multipart/*”之类的好在哪里呢?为了支持 Atom XML 交互格式,你又不得不增加客户端及服务器端的复杂性。通过 multipart,我们可以以一种更加紧凑的格式来获取同样的信息(通过位置 [Location],内容位置 [Content-Location],和内容类型 [Content-Type] 报头)。
就算比 multipart 更好,为什么不就返回一个逗号分隔的有序 URI 列表呢?
REST 吸引我的地方之一(但不仅如此)就是你可以关注于你的服务之间交换的数据格式而不是用某种中间协议来在交互中充当隧道。目前来说,Atom 于我而言不过是 SOAP 的另一种更具诱惑性的替代罢了。

Bill de hOra 试图帮助(另一个)Bill 来回答这一问题,并为他列出了 Atom 的七大要领:

  1. atom:id
  2. atom:updated
  3. atom:link
  4. 扩展规则(mustIgnore, foreign markup)
  5. 日期构建规则
  6. 内容编码规则
  7. 无序的元素

根据 Bill(de hOra)的说法,SOAP 以前(或是现在?)的问题(就一个问题?)在于“最小化的信封什么也没定义,扩展规则采用了错误的默认规则 [mustUnderstand],而内容编码成为了遗留的功课。 ”

他接着总结到这些原则实际上比 Atom 本身更为广泛适用:

就算你不喜欢 Atom(或就此不喜欢 XML),如果你的传送格式想要在 Web 上生存下去的话,你也必须处理这七项基本类型。这就是我对那些喜欢更直接一点并具体到域,而不是将整个域映射到像 Atom 和 SOAP 这种抽象格式上的人们想说的话——就格式来讲,对此展开进攻你大概就能获得 80% 的质量和健壮性了。我相信它对任意Web 或去中心化系统上所用的格式都是适用的,而不限于 XML。一旦一种稀松的数据格式被放任自流,你不能仅仅去重构调用者了,你只有不断的版本控制,版本控制,版本控制。

实际上一篇最早期的 Atom 文章提到如下几点:……

……Atom API 设计在思想上与如下几点指导原则保持了高度一致: - 定义良好的数据模型——包括模式及其它一切!

  • 文档风格的 Web 服务,而不是 RPC
  • 发挥 XML 和名字空间的所有优势
  • 发挥 HTTP 的所有优势
  • 安全,因此在明文中没有密码

这确实与 SOAP 的开端截然不同,随着越来越多的人 开始出于各种理由拥抱Atom ,有理由相信此刻它是REST 最受宠的一个孩子。

查看英文原文: The Value Of Atom?

2008-11-03 01:491011
用户头像

发布了 133 篇内容, 共 38.0 次阅读, 收获喜欢 1 次。

关注

评论

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

一种融合指代消解序列标注方法在中文人名识别上的应用(下)

京东科技开发者

使用 TypeScript 从零搭建自己的 Web 框架:文件扫描与动态导入

RoyLin

typescript

使用 TypeScript 从零搭建自己的 Web 框架:依赖注入

RoyLin

typescript

使用 TypeScript 从零搭建自己的 Web 框架:代理(Proxy)

RoyLin

typescript

Waves 14 Complete完整破解安装包:音频编辑、混音和母带处理

Rose

waves14 Waves 14破解教程 Waves 下载 Waves 14 Complete破解 母带处理

Mac免费软件:不限速下载工具JDownloader

Rose

JDownloader下载 种子下载器 高速下载工具 JDownloader Mac版

主从延迟调优思路

GreatSQL

Monibuca v5 中实现优雅内存分配器

不卡科技

Go 流媒体开发 内存池

使用Python生成二维码

京东科技开发者

使用 TypeScript 从零搭建自己的 Web 框架:IoC 容器实现

RoyLin

typescript

使用 TypeScript 从零搭建自己的 Web 框架:循环引用

RoyLin

mac office办公软件平替:Polaris Office 全面的办公自动化套件 支持M1/M2

Rose

office办公软件 软件下载 Polaris Office 下载 Polaris Office mac版

Studio One 4永久许可证 含Studio One 4下载安装教程 【mac/win】

Rose

音乐制作 Studio One 许可证 Studio One 4破解版 Studio One下载安装

MATLAB R2023b mac安装密钥 含许可证文件 matlab r2023b详细图文安装教程

Rose

数学软件 MATLAB R2023b激活码 MATLAB安装秘钥

利用taobao.item_search API接口,多样搜索类型满足你的购物需求

技术冰糖葫芦

api 货币化 API 测试 pinduoduo API

Docker从入门到精通:ubuntu系统安装docker

霍格沃兹测试开发学社

使用 TypeScript 从零搭建自己的 Web 框架:路由映射

RoyLin

typescript

西贝柳斯Avid Sibelius 2023:无限制地撰写,排列和创作乐谱

Rose

打谱软件 西贝柳斯 Avid Sibelius

影视特效合成软件:Blackmagic Fusion Studio 19 mac中文下载安装 含破解补丁

Rose

视觉特效 Blackmagic Fusion Studio Fusion Studio 19密钥 Fusion Studio 19下载

Autodesk AutoCAD 2022中文版下载 cad2022破解补丁及安装教程 mac/win

Rose

AutoCAD2022序列号 autocad2022秘钥 autocad2022破解版 cad2022下载

详解K8s 镜像缓存管理kube-fledged

华为云开发者联盟

Kubernetes 开发 华为云 华为云开发者联盟 企业号2024年4月PK榜

使用 TypeScript 从零搭建自己的 Web 框架:探索装饰器与反射 API

RoyLin

typescript

XMind 2024思维导图软件:更好地组织思维、管理信息、规划项目和解决问题

Rose

思维导图 XMind 2024思维导图 XMind 2024破解版

macbook防休眠工具Amphetamine,自定义Mac睡眠时间

Rose

软件 Mac Amphetamine 防休眠

Monibuca v5 实现热重启

不卡科技

Go 流媒体开发

Atom的价值?_SOA_Mark Little_InfoQ精选文章