HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

从业务角度论证如何采用 REST 风格架构

  • 2008-12-25
  • 本文字数:873 字

    阅读完需:约 3 分钟

在一系列题为“REST 对话”的连载博文中,Duncan Cragg“为eBay 列举了应该给他们的集成API 采用一种真正REST 方法的论据”。在《业务对话》一文中,Duncan 从业务角度对REST 风格架构的采用进行了论证。

Duncan(以一种对话风格)向一个虚构的 eBay 架构师解释说,使用 RESTful 方法构架业务流程要比使用以 WS-* 规范为基础的 SOA 构建方法更简单,但更强大。关于应用架构师的角色,他说道:

在设计应用层资源交互,或者也可能是在架构师使用某些现有资源类型以及使用帮他完成业务逻辑的‘资源激活’代码时,架构师的工作是:资源类型或业务层。要是使用 WS-*,只会把这项任务搞得混乱和复杂。

“当你是从资源而不是动作出发进行思考时,所有事情都变得更清晰了”,在谈到用面向资源架构(ROA)来处理诸如服务发现和描述、客户端状态和会话,业务流程的问题时,Duncan states 这样说道。他还提到:

最好由松散的协议和已建立的惯例作为起始点;只在绝对必要时才添加约束、契约和中央控制。确保中央控制仅在模式(schema)之上。

使你的企业能够‘Mashable’,这样每个人都会对你感恩戴德。在 URL 中暴露数据的 UUID 和 GUID。在标准内容类型内对数据进行转换和修饰。

对于在这样一种架构中管理客户端的状态,他警告说:

任何隐藏状态都是一个危险信号。只要在 URI 中暴露状态信息,你就会知道一切运转正常。[……] 如果你发现你自己在会话或 cookies 中隐藏状态,或是通过设置 no-cache 返回该客户端专用的不同数据,或是如果你通过会话把连续的交互紧紧地绑在了一起,你就走向了一条不归路。

他承认这样一种方法可能很难在企业内推广,但是又表示它“更紧密地映射到了业务操作和互操作的实际发生方式”。

REST[……] 很自然地映射到声明性的业务规则上。当你从“流程思维”转换到“资源思维”时,你还必须把思维转换成声明性的。与协调两个手工编码的接口间数据的导入导出不同,你只能把它们全都链接起来,并指望人们可以提取(derefernce)和发现你的数据。

请分享你在企业中推广 Restful 风格的经验,另外再看看原文和这个系列文章

查看英文原文 RESTful Business Conversations

2008-12-25 03:151076
用户头像

发布了 255 篇内容, 共 56.9 次阅读, 收获喜欢 10 次。

关注

评论

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

图+AI 生成未来|悦数图数据库亮相 2023 世界人工智能大会

悦数图数据库

AI 图数据库 大模型 AIGC

prometheus描点原理

蓝胖子的编程梦

Docker 云原生 Grafana Prometheus #k8s

​山东大学高校专区入驻飞桨AI Studio,优质教育资源等你来学!

飞桨PaddlePaddle

人工智能 百度 paddle 百度飞桨

在 7 月 4 日,PoseiSwap 治理通证 $POSE 上线了 BNB Chain 上的头部

威廉META

在 7 月 4 日,PoseiSwap 治理通证 $POSE 上线了 BNB Chain 上的头部

鳄鱼视界

“多”维演进:智能编码的深度进化

阿里云视频云

云计算 编码 视频编码 视频云

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

西柚子

研发质量指标大 PK:MTTR vs MTBF,谁是靠谱王?

LigaAI

高可用性 研发效能度量 MTTR 研发效能管理 企业号 7 月 PK 榜

软件测试/测试开发丨Selenium的常用元素定位方法

测试人

Python 软件测试 自动化测试 测试开发 selenium

MySQL的match函数在sp中使用的BUG解析

GreatSQL

数据库 greatsql

不能不知道的LED显示屏产业机遇

Dylan

机遇 产业 LED显示屏 led显示屏厂家

火山引擎DataLeap数据质量解决方案和最佳实践(三):最佳实践

字节跳动数据平台

语音直播源码知识分享:探索新的沟通方式

山东布谷科技

软件开发 语音 源码搭建 直播源码 语音直播源码

聆心智能上榜“北京市通用人工智能大模型行业应用典型场景案例”

硬科技星球

认知负担的挑战与平台工程的机遇

SEAL安全

DevOps 平台工程 认知负担

关于Java已死,看看国外开发者怎么说的

越长大越悲伤

Java 后端

HDC开发者盛典 | 破解创业老板高效制果汁奥秘挑战!赢取代金券、按摩枕、收纳袋等礼品~

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

ABAQUS有限元分析软件吃CPU还是GPU比较多?

思茂信息

gpu cpu 显卡 ANAQUS 有限元分析

5G与妈祖守护的那片海

白洞计划

5G

如何用 TDengine 预测 “未来”

爱倒腾的程序员

涛思数据 tdengine 时序数据库

Spring Loaded代码热更新实践和原理分析 | 京东云技术团队

京东科技开发者

spring 热更新 Loader 企业号 7 月 PK 榜

推荐书单:个人成长的一些方法

老张

个人成长 书单

2023年CCF-百度松果基金课题申报持续进行中,截至7月24日

飞桨PaddlePaddle

人工智能 百度 paddle 飞桨 百度飞桨

MatrixOne 0.8.0 开放公测啦!

MatrixOrigin

云原生 超融合 #数据库 MatrixOne

了解Java可见性的本质

阿里技术

Java java 编程

玩转“擎舵”,秒变AIGC时代营销创意“掌舵人”

Geek_2d6073

华为云CodeArts IDE Online:让你随时随地畅享云端编码乐趣

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

GPU 容器虚拟化新能力发布和全场景实践

Baidu AICLOUD

GPU容器虚拟化

架构课模块一作业

庚小庚

ElasticSearch - 批量更新bulk死锁问题排查 | 京东云技术团队

京东科技开发者

elasticsearch MQ 企业号 7 月 PK 榜 BulkProcessor

人脸识别技术的精度提高及其应用

来自四九城儿

从业务角度论证如何采用REST风格架构_SOA_Dilip Krishnan_InfoQ精选文章