1

次のディレクトリ構造を持つ Feathers アプリを想定しています。

- src
-- hooks
-- middleware
-- services

Webhook ルート ハンドラを配置する適切な場所はどこですか? これはミドルウェアを使用して行うべきですか、それとも標準の Express ルートを使用してルート ディレクトリ内に配置する方がより慣用的でしょうか?

コンテキストとして、私は Instagram からのイベントを聞きたいのですが、それらは私が使用している RESTful サービスと必ずしも一致しません。

4

1 に答える 1

2

ミドルウェアは、標準的な高速ルートのハンドラーにすぎません。Webhook は、他の非サービス エンドポイントと同様にミドルウェアと見なします。

そのミドルウェアでは、 経由でサービスを取得できますreq.app.service。たとえば、imagesWebhook によって取得されたデータのサービスにエントリを作成し、ステータス (またはエラーを返す) を送信する Instagram 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 に答える