在feathersjs应用程序中实现webhook路由的位置?

时间:2016-06-23 19:01:02

标签: feathersjs

假设具有以下目录结构的Feathers应用程序:

- src
-- hooks
-- middleware
-- services

放置webhook路由处理程序的适当位置在哪里?是应该使用中间件来完成,还是使用标准Express路由并将它们放在路径目录中更为惯用?

对于上下文,我想听听Instagram上的活动,但他们不一定会与我使用的RESTful服务相匹配。

1 个答案:

答案 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验证之前再添加到数据库中。