Posts tagged ‘rest’

Atom由两份规范组成:Atom聚合格式,它基于XML定义了描述 web feeds 的语言;Atom发布协议,它描述了检索和操纵feeds的一种 RESTful HTTP 协议。

Atom被认为是RSS(Rich Site Summary,富站点摘要)的接替者,后者通常包含了人为撰写的内容,比如博客条目。因此,一个Atom条目或feed(XML元素和属性)内部结构传 达了诸如作者、语言、标题等发布内容的语义。可别被这一点给骗了;Atom条目非常适合将所有类型数据作为有效负载进行传送。

Atom 的应用可以参考 InfoQ 文章:AtomServer──数据分发的发布动力

InfoQ 文章 有关REST的十点疑惑

其中有几点论述很精辟:

“3. 谁真会把他们应用中如此多的实现细节暴露出来?”中提到“REST 应用是以 数据为中心(data-centric),而不是 操作为中心(operation-centric),这符合我们一直以来的直观理解。

“4. REST只能配合HTTP使用,它不是传输协议无关的。”中提到“协议无关性是一个缺陷,而不是一个特性”,追求 彻底/pure 的通用抽象在实际的开发应用中往往导致负面的结果。

“6. REST不支持事务”中提到“很大程度上,在SOA或REST环境中需要ACID事务,其实是一种设计异味(design smell)——你很可能已经为你的服务或资源采用了错误的模型”,验证了实际开发中的体验,着眼处应该是正确的模型。

“7. REST是不可靠的”。GET/PUT/DELETE 是 identpotent 的 – 重复请求得到同样的结果,但 POST 不能保证。一种可能的解决方案:将语义映射到 PUT。采用Joe Gregorio描述的一种常见的最佳实践

“9. 无异步交互”。使用 HTTP 代码 202 Accepted 来表示“收到请求,异步处理过程开始”。“至于处理结果,有多种办法:服务器可以返回一个资源的URI,然后客户端通过向该URI发送GET请求来访问结果(尽管在专门为一个请求创建资源时采用响 应代码201 Created更为恰当)。或者,客户端可以提供一个URI,并期待服务器在处理完成后把结果POST上去”。

进一步的阅读参考【RESTful Web Services】。