QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

纯 GET 的 REST 集成模式——是同步,还是集成?

  • 2009-10-30
  • 本文字数:954 字

    阅读完需:约 3 分钟

Duncan Cragg 阐释了他关于纯粹基于 GET 的 REST 集成模式的想法,其内容与微软 FeedSync 规范的愿景极为相似。他通过与一名企业架构师的假想对话这一方式,来解释了这一模式。

这位担忧的企业架构师注意到面向服务的环境中充满这样的 REST 实践:Web 站点有“REST API”,或者有着小’s’的“Web 服务”。就算 AtomPub 也有“服务文档”!一些模式,比如 AtomPub,通过完整的 HTTP 方法集,仅提供简单的数据读 / 写服务。而另一些模式仅把这种读 / 写接口作为对更多复杂的服务功能的封装。

他不禁想到:“Web 在 REST 集成中处于什么位置?没有 PUT 和 DELETE,Web 也工作得很好:那么就使用本身 RESTful 的 GET 不就够了吗?”

他将自己的基于 GET 的集成模式称作 FOREST,一个 RESTful 的观察者同步模式,像他所解释的那样:

FOREST 是一个只有 GET 的 REST 集成模式,简单的定义为:一个资源的状态依赖于它所链接的其它资源的状态。[…] 这意味着,为了查看这些依赖,资源服务器同时也必须是客户端。

接下来他给出了一些关于这一集成场景的例子,还包括混搭…

FOREST 是由纯 GET 或 Web 轮询用例引申而来的 REST 模式,包括某些特定类型的混搭,比如 feed 聚合或筛选器,为其它网页创建摘要的站点,等等。

…以及它与企业的相关性。

FOREST 是在 ROA/WOA/SOA 环境里构建“企业混搭”的一个 REST 模式。[…] 据我所知与此最相近的是企业混搭标记语言,但 FOREST 却十分不同:它简单得多,并且是 / 纯粹 / 的 REST 模式。

就这点而言,实际上 ATOM/RSS feed 使用基于 GET 的同步已有一段时间了, FeedSync 就是这样的形式之一,这是微软的一个 feed 同步规范。

FeedSync 对于 Atom 和 RSS 的应用范围是定义一个最小的必需扩展,来支持松散协作的应用使用 Atom 和 RSS feed 来作为条目共享的基础——也就是说,在两个或多个跨订阅的 feed 之间对新的和变更的条目异步地进行同步。

在这样的集成形式中,资源表示 - 通常指的是规范的数据模型,以feed 的方式暴露出来,并可以被端点用于提取同步(pull-synchronization)。如果加上端点可以是各种能够通过使用HTTP 的GET 语义来同步资源状态的设备,服务,应用程序等等这种思想,这种模式将会更加普遍适用。

查看英文原文: GET-only REST Integration Patterns Blur The Line Between Synchronization And Integration

2009-10-30 05:512397
用户头像

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

关注

评论

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

一文搞懂Go1.18泛型新特性

闫同学

Go 11月月更

API关键技术——身份认证

阿泽🧸

11月月更 API安全

react源码中的生命周期和事件系统

flyzz177

React

你可见过如此细致的延时任务详解

骑牛上青山

Java redis kafka 延时队列

浅谈Go语言反射

闫同学

Go 反射 11月月更

Java反射(完)类加载和反射获取信息

浅辄

Java 反射 11月月更

【web 开发基础】PHP 自定义常规函数的声明及应用 (30)

迷彩

函数 PHP基础 11月月更 自定义函数 常规参数函数

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

从React源码来学hooks是不是更香呢

goClient1992

React

融云 IM 和 RTC 服务,「助攻」智能物流等客户打通链路、完善生态

融云 RongCloud

IM RTC

C++学习---类型萃取---std::integral_constant

桑榆

C++ STL 11月月更

从React源码分析看useEffect

goClient1992

React

react源码分析:实现react时间分片

flyzz177

React

支持向量机-线性SVM用于分类的原理

烧灯续昼2002

Python 机器学习 算法 sklearn 11月月更

聊聊mybatis的反射之Invoker模块

急需上岸的小谢

11月月更

聊聊mybatis的反射之对象工厂

急需上岸的小谢

11月月更

CleanMyMac X2023苹果电脑系统清理维护软件

茶色酒

CleanMyMac X2023

知乎好物推荐文能不能赚钱:如何撰写好物推荐文

石头IT视角

聊聊如何让办公网络直连Kubernetes集群PodIP/ClusterIP/Service DNS等

大卡尔

#Kubernetes# 工程效能 11月月更

react源码分析:babel如何解析jsx

flyzz177

React

聊聊Mybatis的反射之ObjectWrapper

急需上岸的小谢

11月月更

什么是容器编排及编排的优点

穿过生命散发芬芳

容器编排 11月月更

性能测试知识科普(五):能力分层

老张

性能测试 岗位模型

极客时间运维进阶训练营第四周作业

Starry

Hive 与 HBase 之间的区别和联系

千锋IT教育

【愚公系列】2022年11月 微信小程序-页面生命周期

愚公搬代码

11月月更

java并发编程挑战与原理剖析

想要飞的猪

synchronized volatile原理

融云推送服务:独享推送通道,更高并发能力,应用运营必备

融云 RongCloud

互联网 消息

Alien Skin Exposure2023独立编辑器和PS/LR插件

茶色酒

Alien Skin Exposure

2022-11-22:小美将要期中考试,有n道题,对于第i道题, 小美有pi的几率做对,获得ai的分值,还有(1-pi)的概率做错,得0分。 小美总分是每道题获得的分数。 小美不甘于此,决定突击复习,

福大大架构师每日一题

算法 rust 福大大

从 Redux 的困扰到如何技术选型

光毅

JavaScript React Redux

纯GET的REST集成模式——是同步,还是集成?_SOA_Dilip Krishnan_InfoQ精选文章