假设具有以下目录结构的Feathers应用程序:
- src
-- hooks
-- middleware
-- services
放置webhook路由处理程序的适当位置在哪里?是应该使用中间件来完成,还是使用标准Express路由并将它们放在路径目录中更为惯用?
对于上下文,我想听听Instagram上的活动,但他们不一定会与我使用的RESTful服务相匹配。
答案 0 :(得分:2)
中间件只是标准快速路由的处理程序。我认为像任何其他非服务端点一样webhook中间件。
在该中间件中,您可以通过req.app.service
检索服务。例如,一个Instagram webhook在images
服务中为webhook检索的数据创建条目,然后发送状态(或错误返回)可以如下所示:
app.use('/instagram', function(req, res) {
const imageService = req.app.service('images');
const images = req.body.data;
imageService.create(currentData).then(() => {
res.status(200);
res.end('ok');
}).catch(error => {
res.status(500);
res.end(error.message);
});
});
发送到webhook的数据也应该在使用Instagram验证之前再添加到数据库中。