1

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

- src
-- hooks
-- middleware
-- services

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

对于上下文,我想收听来自 Instagram 的事件,它们不一定与我正在使用的 RESTful 服务相匹配。

4

1 回答 1

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 进行验证。

于 2016-06-24T04:43:02.923 回答