最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

翻译:《实用的Python编程》01_05_Lists

codists

人工智能 后端 python 爬虫 列表 数据结构与算法

【LeetCode】重塑矩阵Java题解

Albert

算法 LeetCode 2月春节不断更

第四章作业-编写一个用例文档

秦挺

【LeetCode】数组拆分Java题解

Albert

算法 LeetCode 2月春节不断更

ElasticSearch.03 - 基本原理

insight

elasticsearch 2月春节不断更

C语言实用第三方库Melon开箱即用之多线程模型

码哥比特

c c++ Linux 后端 框架

程序员成长第五篇:如何选择城市工作?

石云升

程序员 2月春节不断更 选择城市

【STM32】PWM 输出 (标准库)

AXYZdong

硬件 stm32 2月春节不断更

今日笔记

Nydia

微信红包封面,2021年为啥突然火了?

架构精进之路

春节 微信红包封面 商业洞察

给hugo博客添加评论功能

远鹏

Hugo 静态博客 utterances

这是我的第一次JavaScript初级技巧

我是哪吒

JavaScript 学习 程序员 大前端 2月春节不断更

第一次异地过年有感

石君

思考 情感

13. 如果自己写的 Python 程序出错了,怎么办?

梦想橡皮擦

python 爬虫 2月春节不断更

深度讲解背包问题:面试中每五道动态规划就有一道是背包模型 ...

宫水三叶的刷题日记

深度思考 面试 LeetCode 动态规划 数据结构与算法

IDEA插件:快速删除Java代码中的注释

xiaoxi666

Java 代码注释 JavaParser

3.Fiber(我是在内存中的dom)

全栈潇晨

React React Hooks react源码

字幕组时代落幕,翻译的未来可能是?

字节跳动技术团队

1.开篇(听说你还在艰难的啃react源码)

全栈潇晨

React React Hooks react源码

春节快过腻了?不妨关心下太空探索

脑极体

EternalWallet为您提供快速、便捷、低价的国际汇款服务

Geek_c610c0

2.react心智模型(来来来,让大脑有react思维吧)

全栈潇晨

React React Hooks react源码

gradle中的增量构建

程序那些事

maven Gradle 程序那些事 构建工具

【活动回顾】4步2小时,搭建爆火的语音聊天室

ZEGO即构

消息队列Kafka:入门基础

正向成长

kafka

C语言第三方库Melon开箱即用之词法分析器使用

码哥比特

c c++ Linux 后端 框架

揭秘登上2021春晚舞台的黑科技-XR技术

架构精进之路

黑科技 vr 春晚 XR MR

日记 2021年2月17日(周三)

Changing Lin

2月春节不断更

1480. 一维数组的动态和

小马哥

算法 七日更

开发利器——C语言必备实用第三方库

码哥比特

c c++ Linux 后端 框架

写公号大半年,看看我都收获了些啥

架构精进之路

技术 总结 微信公众号 成长笔记

Atom的价值?_SOA_Mark Little_InfoQ精选文章