我有一个简单的 POST Grape 端点,在后台使用 Wisper pub/sub:
module Something
class Doit < Grape::API
post :now do
service = SomePub.new
service.subscribe(SomeSub.new)
service.call(params)
end
end
end
这是SomeSub
实际发生计算的地方:
class SomeSub
def do_calculations(payload)
{result: "42"}.to_json
end
end
SomePub
也很简单:
class SomePub
include Wisper::Publisher
def call(payload)
broadcast(:do_calculations, payload)
end
end
所以我需要的是{result: "42"}
在调用葡萄的post :now
端点时用 JSON 响应。
不幸的是,它不能以这种方式工作,而我所拥有的是:
{"local_registrations":[{"listener":{},"on":{},"with":null,"prefix":"","allowed_classes":[],"broadcaster":{}}]}
Wisper wiki 中的那个例子并没有太大帮助(https://github.com/krisleech/wisper/wiki/Grape)
SomePub#do_calculations
由于葡萄的端点调用,任何想法如何实际传递结果?