NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

模块六作业

potti

指标统计:基于流计算 Oceanus(Flink) 实现实时 UVPV 统计

腾讯云大数据

大数据 流计算 Oceanus

软件架构设计原则之合成复用原则

Tom弹架构

Java 架构 设计模式 设计原则

拆分电商系统为微服务

缘分呐

微服务 电商系统

模块一作业

hhh

「架构实战营」

学生管理系统

Mars

架构实战营 模块一

HMS的舞者们,在智能世界的舞台

脑极体

软件架构设计原则之里氏替换原则

Tom弹架构

Java 架构 设计模式 设计原则

学生管理系统架构设计

天天向上

架构实战营

电商微服务拆分

白开水又一杯

#架构实战营

架构实战营总结

gawaine

架构实战营

linux删除目录下文件的几种方法

入门小站

Liunx

10分钟搞懂事件驱动API

俞凡

架构 API

模块6作业

4anonymous

ZK(ZooKeeper)分布式锁实现

牧小农

zookeeper ZooKeeper原理 zookeeper分布式锁

软件架构设计原则之接口隔离原则

Tom弹架构

Java 架构 设计模式 设计原则

web安全:mysql提权总结篇

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

随便谈一下kafka消息队列

Regan Yue

kafka 10月月更

学习心得 - 架构训练营 - 第六课

Fm

这样学BAT必面之软件设计原则,还不会就是我的问题

Tom弹架构

Java 架构 面试 设计模式 设计原则

电商系统微服务拆分

michael

架构实战营

什么是架构

天天向上

架构实战营

模块一作业

zjluoyue

Redis 实现分布式锁

黄敏

架构实战营-第三期-模块一作业

岚哲

极客时间 架构 架构实战营

腾讯云安全隐私计算通过 CFCA 评测,再获国家级认可

腾讯云大数据

大数据 隐私计算

软件架构设计原则之迪米特法则

Tom弹架构

Java 架构 设计模式 设计原则

Vue进阶(幺肆玖):template 标签

No Silver Bullet

Vue 模板 占位符 10月月更

【架构实战营作业】模块六——创业公司电商微服务架构

聆息

架构实战营 拆分电商系统为微服务

💤 ZZzz💤

架构实战营

026云原生之Exporter采集数据

穿过生命散发芬芳

云原生 10月月更

Atom的价值?_SOA_Mark Little_InfoQ精选文章