我了解Kong使用的数据存储是用于持久存储配置以启用水平扩展的。
我想知道的是,是否也有可能将实际的业务数据存储在api网关的数据源本身,并根据从该数据源读取的数据路由api。
。如果一个用户过去购买了3个不同作者的书,我想只向他显示这些作者的所有书的列表。这里的订单历史记录是业务数据,只向他显示这些作者的书是业务逻辑。
在请求通过api网关后,我通常可以获取用户的订单历史记录,然后显示所需的数据。
但是,是否可以保存用户的订单历史记录在kong数据源和中编写一个自定义插件在lua中,将获取作者列表的用户从网关本身,并传递作者的id到所需的模块,然后可以显示这些作者的书?
如果可能的话,这样做明智吗?虽然可以利用底层的Kong DAO接口,但我通常不会将您的业务逻辑与Kong使用的模式绑定在一起,因为DAO接口将来可能会响应新的Kong需求而更改,如果发生这种情况,您将无法控制您的业务逻辑(除非您还维护DAO实现)。
一般来说,我会将所有这些逻辑托管在一个单独的服务中,然后使用Kong插件查询服务,例如,使用内部HTTP客户端。