Fermer

décembre 31, 2019

Utilisez WebHooks pour suivre l'historique de votre serveur de rapports Telerik


Ce billet de blog fournit un exemple pratique sur la façon d'utiliser les WebHooks, un moyen basé sur des événements pour réaliser la synchronisation des données et les notifications en temps réel, pour suivre l'historique d'un serveur de rapports Telerik.

"Réglez-le et oubliez-le "

" Ne nous appelez pas, nous vous appellerons "

Dans ce billet de blog plutôt technique, je vais vous montrer comment vous pouvez utiliser WebHooks pour capturer des actions dans votre rapport Telerik Serveur . J'ai cité ci-dessus probablement les principaux avantages offerts par le WebHook. Vous le définissez une fois et n'attendez qu'un appel. Dans le cadre du projet, vous pouvez également voir comment paramétrer et filtrer vos WebServiceDataSources .

Pour ceux qui ne sont pas familiers avec les WebHooks, le terme désigne une fonctionnalité qui permet aux événements sur un site d'invoquer un comportement sur le même ou un autre site. Les WebHooks sont automatiques et ne nécessitent aucune action de la part de l'abonné (le soi-disant "auditeur"). Ainsi, ils sont très pratiques en matière de synchronisation des données et de notifications en temps réel car ils sont basés sur des événements. Ils ajoutent de l'efficacité, car la même fonctionnalité ne peut être obtenue avec des appels d'API que par le biais de "sondages" réguliers pour les changements. Les appels API sont basés sur les demandes, c'est-à-dire que vous devez passer des appels régulièrement sans savoir s'ils recevront une mise à jour des données. Ce dernier est loin d'être optimal lorsque vous avez juste besoin d'être averti des modifications.

Avec la version Telerik Report Server R2 2018 (4.1.18.516) nous avons introduit la prise en charge des WebHooks. Ce billet de blog décrit comment les utiliser pour suivre l'historique d'un serveur de rapports Telerik. L'approche est illustrée dans le projet référencé ici – appelé WebHooks .

Les principaux éléments constitutifs du projet sont:

  • CustomWebHookHandler mis en œuvre conformément à l'article Recevoir des Webhooks . La fonctionnalité de cette classe met à jour le contenu des fichiers JSON (un pour chaque filtre WebHooks) suivant l'historique du serveur de rapports.
  • NotificationsController le contrôleur WebApi qui définit les points finaux pour exposer les données des fichiers JSON avec le

  • HomeController est un contrôleur MVC renvoyant une vue avec HTML5 ReportViewer qui affiche le rapport WebHooksReport.trdp avec l'historique Report Server.

  • ReportsController définit le Telerik Reporting REST Service qui génère le rapport. Peut être supprimé si le rapport WebHooksReport.trdp sera hébergé sur le serveur de rapports.

  • Le dossier Reports contient le rapport – WebHooksReport.trdp et les fichiers JSON avec les enregistrements d'historique. Le rapport affiche cinq tableaux, un pour chaque filtre WebHooks. Chaque table est liée à un WebServiceDataSource lié au point de terminaison correspondant du NotificationsController. Le rapport contient trois paramètres de rapport visibles que l'utilisateur final peut utiliser pour filtrer le rapport. Deux d'entre eux sont DateTime (ReceivedAfter et ReceivedBefore) et filtrent les WebHooks en fonction de la date / heure de leur réception. Le troisième paramètre qui peut être contrôlé par l'utilisateur est NotificationType et permet le filtrage par les actions qui ont appelé la notification. Les types d'actions disponibles sont répertoriés dans un CsvDataSource incorporé. Il existe également un paramètre masqué, dont la valeur est transmise par la visionneuse et spécifie l'URL du service Web alimentant le rapport avec des données. Notez que les données sont filtrées au niveau de la source de données via JSONPath . Voici la page de configuration WebServiceDataSource appropriée (cliquez sur l'image pour l'agrandir):

 Configuration de WebServiceDataSource via l'assistant

L'idée de base est une modification du contenu du serveur de rapports (par exemple, télécharger un rapport, créer une tâche planifiée, éditer un Alerte de données, etc. – vérifiez Gestion des webhooks pour les filtres pris en charge) pour déclencher la fonctionnalité dans une application Web d'abonné (le "listener") qui mettra à jour les enregistrements d'historique Report Server. L '"écouteur" attend que le serveur de rapports signale des modifications particulières et les enregistre dans des fichiers JSON.

Les données de ces fichiers sont exposées via un contrôleur WebApi (NotificationsController dans l'exemple). Ce dernier est utilisé par WebServiceDataSources pour alimenter les tables de rapport où les détails sur les modifications sont affichés. Le rapport (WebHooksReport.trdp dans l'exemple) lui-même peut être hébergé sur le serveur de rapports. Si tel est le cas, vous pouvez supprimer le ReportsController de l'exemple de projet et définir la propriété ReportServer du visualiseur HTML5 en fonction de vos paramètres Report Server.

Voici à quoi ressemblera le rapport final une fois rendu avec des exemples de données dans la visionneuse de rapports HTML5 intégrée à l'application:

 Rapport rendu dans la visionneuse de rapports Html5

J'espère que ce didacticiel vous aidera à tirer encore plus profit de Telerik Report Server. Bon codage!





Source link