想象一下有人想要查询一个比萨服务器上的比萨列表。这个人只需要做以下操作:
使用pedestal-app的数据模型和消息,我不确定如何设计客户端-服务器通信。以下是一些晃荡几分钟后的可能性:
选项 #1 和 #3 看起来更好,但 #3 有些 hacky,而 #1 则是误导性的。
你们是如何做到的呢?
谢谢!
GET /pizzas
;=> ["cheese", "extra cheese", "broccoli"]
使用pedestal-app的数据模型和消息,我不确定如何设计客户端-服务器通信。以下是一些晃荡几分钟后的可能性:
- 效果消费者
- 将消息转换为HTTP请求
- 将结果转换回消息(例如
[{:type :add :topic [:pizzas] :value "cheese"} ...]
) - 将消息放入队列中
- 服务器上的专用资源 (例如 "/edn")
- 接受 pedestal 消息
- 分派到正确的函数
- 以原始数据响应(即 ["cheese", "extra cheese", "broccoli"])
- 使效果消费者将结果转换回消息
- 使用路由的专用资源。与 #2 类似,但是
- 更改请求
- 将其转发到路由表中的另一个条目
- 双方消息,其中
- 服务器将消息转换为函数调用
- 服务器将结果转换回消息
- 客户端只需将这些消息添加到队列中
选项 #1 和 #3 看起来更好,但 #3 有些 hacky,而 #1 则是误导性的。
你们是如何做到的呢?
谢谢!