服务间状态转移及操作设计策略
1. 服务间状态转移的方式
在服务之间实现状态转移有三种方式,每种方式都有其适用场景和特点。
1.1 通过内联现有表单按值传递
通过超媒体表单在服务之间传输状态数据是解决该问题最简单、最直接的方法。示例如下:
<form action="http://api.example.org/shopping/cart"
method="post" name="cartCreate">
<input name="cartId" value="q1w2e3r4t5y6u7i8" />
<input name="cartName" value="Mike's Cart" />
</form>
这种方式适用于状态数据集合较小,且接收服务不需要预先存在有状态会话的情况。
1.2 通过专用操作按值传递
可以通过在服务接口中添加导入和导出操作来支持状态转移。例如,一个购物车管理服务除了常规的创建、添加商品、移除商品和结账步骤外,还可以添加导入现有购物车集合和导出该集合的步骤。以下是一个支持导入和导出操作的简单购物 API 的 ALPS 代码片段:
{
"$schema": "https://alps-io.github.io/schemas/alps.json",
"alps": {
"version": "1.0",
"title": "Simple
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



