私はASP.NET Webhooksパッケージを使用して、アプリケーションで特定のイベントが発生したときにコールバックを受信できるようにしています。例: entityUpdated、entityCreated、entityDeletedエンティティごとのWebhooks
特定のエンティティのコールバックを受信することにのみ関心がある場合に備えて、Webhooksを特定のエンティティの更新のみに登録する可能性を公開したいと思います。例: entity1のentityUpdated
フィルタは、この動作を実装するための良い候補のようです。ユーザーはフィルタを使用してイベントを購読できます。例: エンティティ*(エンティティに関するすべてのイベントを受け取る)
エンティティごとのイベントを公開することを考えていました:entity_1_Updated。 これは、公開されたイベントのリストが、アプリケーションの実行時に変更されることを意味します(エンティティが作成または削除されると)。 具体的には、IWebHookFilterProviderの実装は、イベントが発生する可能性のあるエンティティのリストを取得するためのデータベースクエリを実行します。 ように:
class EntityWebHookFilterProvider : IWebHookFilterProvider
{
public async Task<Collection<WebHookFilter>> GetFiltersAsync()
{
List<int> ids = await repository.GetAllUpdatableEntitiesAsync();
return new Collection<WebHookFilter>(ids.Select(id => new WebHookFilter { Name = string.Format("entity_{0}_Updated", id)}).ToList());
}
}
これは良い解決策でしょうか?または、イベント/フィルタのリストを修正する必要がありますか?