深入理解仓库模式:抽象、解耦与测试的艺术
1. 直接使用 SQLAlchemy 的 API 端点
首先,我们来看一个直接在 API 端点中使用 SQLAlchemy 的示例代码:
@flask.route.gubbins
def allocate_endpoint():
session = start_session()
# 从请求中提取订单行
line = OrderLine(
request.json['orderid'],
request.json['sku'],
request.json['qty'],
)
# 从数据库加载所有批次
batches = session.query(Batch).all()
# 调用领域服务
allocate(line, batches)
# 将分配信息保存回数据库
session.commit()
return 201
这个代码片段展示了如何在 API 端点中直接使用 SQLAlchemy 进行数据库操作。它从请求中提取订单行信息,加载所有批次,调用领域服务进行分配,最后将分配信息保存回数据库。
2. 引入仓库模式
仓库模式是对持久化存储的一种抽象,它通过模拟所有数据都在内存中来隐藏数据访问的繁琐细节。想象一下,如果我们的笔记本电脑有无限的内存,就不需要使用笨拙的数据库,而是可以随时使用我们的对象。以下是一个简单的示例:
超级会员免费看
订阅专栏 解锁全文
853

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



