写点什么

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

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

关注

评论

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

架构探索:事务处理二

而立斋

无可限量的数字经济

CECBC

数字经济

mongodb 源码实现系列 - mongodb详细表级操作及详细时延统计实现原理(快速定位表级时延抖动)

杨亚洲(专注MongoDB及高性能中间件)

数据库 mongodb 性能调优 源码刨析 分布式数据库mongodb

架构探索:事务处理总结

而立斋

Python最会变魔术的魔术方法,我觉得是它!

Python猫

架构师训练营第 1 期 第 12 周作业

李循律

极客大学架构师训练营

API研发效能提升实战

Geek_40a463

研发效能 API研发

shell脚本的使用该熟练起来了,你说呢?(篇四)

良知犹存

shell脚本编写

Java并发编程:任务执行器Executor接口

码农架构

Java并发

排查指南 | 关于 mPaaS-iOS 小程序打不开问题的解决方案

蚂蚁集团移动开发平台 mPaaS

小程序 mPaaS

架构探索:事务处理三

而立斋

架构之书:传道与《设计模式》

lidaobing

架构 设计模式

阿里P8大佬带你全面了解—MySQL锁:03.InnoDB行锁

比伯

Java MySQL 编程 架构 程序人生

年轻程序员不讲武德,做表竟然拖拉拽

雯雯写代码

程序员

第八周-总结

jizhi7

学习笔记4

Qx

学习笔记-week12

张荣召

话题讨论 | 作为程序员你的业余爱好是什么呢?

小天同学

话题讨论 业余爱好

Eclipse Vert.x 4发布

dinstone

Java Reactive Vert.x

英特尔唐炯:36.4% PC同比增长,预示了2021是个好年

E科讯

GaussDB(DWS)磁盘维护:vacuum full执行慢怎么办?

华为云开发者联盟

数据库 数据 DWS

双十二好物推荐:「mPaaS 安全加固」带你看看别人家的应用

蚂蚁集团移动开发平台 mPaaS

安全 mPaaS 应用

DolphinDB与Aliyun HybridDB for PostgreSQL在金融数据集上的比较

DolphinDB

postgresql 阿里云 时序数据库 DolphinDB 数据库开发

12.2分布式文件系统

张荣召

12.1大数据技术发展史

张荣召

第五周作业第1题

走走,停停……

区块链技术在旅游业中的应用探索

CECBC

旅游

Java中CAS原理分析(volatile和synchronized浅析)

叫练

volatile 多线程 synchronized CAS JUC

以太公约系统开发详情丨以太公约源码案例

系统开发咨询1357O98O718

以太公约系统开发介绍

你心目中高级程序员的印象是什么样子的?

Java架构师迁哥

第八周课后练习

jizhi7

Atom的价值?_SOA_Mark Little_InfoQ精选文章