Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.



Page Properties
Status
Status
colourYellow
titlePROGRESS
Priority2
Page Properties
hiddentrue
idDONE

Product Version
Report Note
AssigneeMax

Ressources

Event = System Hooks (Frage) What is the difference?

Resources & Remarks

  • This tutorial should eventually replace the System Hooks page in this directory, as the content of that page will be moved to a concept page.
Technical Review of Example Webhook Consumer Server needed
  • Information on Configuration in On-Premise systems that should be moved to a different article:

Run Configuration

Running the Java application to register the service must include a number of parameters to communicate the services' existance and contact information to the Discovery Service. Find the full list of required parameters below:

NameValueDescription
spring.profile.active<active profiles>Profiles available and running within your system, defining in which Profiles the Interceptor will be active 
spring.cloud.config.uri<protocol>://<config url>URL of the Configuration service endpoint where the service can recieve system information
eureka.instance.prefer-ip-addresstrueDecides whether the Webhook service will register using its host name or its host ip. 
eureka.instance.ip-adress<your host ip>Define host ip, and host base url when used in conjunction with the previous parameter.


Modification History

NameDateProduct VersionAction
Antje08 FEB 20212.4New page properties macro.



Excerpt

An example Webhook consumer service set up using Java and Spring Boot. 


Section
bordertrue


Column

Table of Contents

Table of Contents
exclude(Table of Contents|Read on|Events|Webhooks|Messaging when Importing DocumentsWebhooks|Validation of Properties using Catalogs|Accessing Binary Content during an Import)


Requirements

In this tutorial, we'll create a Spring Boot Service using Java, meaning the requirements for the project are derived from Spring Boot. Thus, a JDK version 1.8 or later and Maven 3.2 or later are required. 

...

Setting up the Consumer Service

To implement processing of incoming update metadata using our webhook service, we need to configure an endpoint within a controller class of our Example Webhook Service, in this instance ExampleRestController. The URL we define between the RequestMapping annotation of the controller class and the PostMapping annotation of the endpoint method will need to find its way into the System Hook system hook configuration of our yuuvis® Momentum Systemsystem. We 'll will also define a stub method for working with the incoming metadata, which we 'll will call from within our endpoint method, the Object Map object map provided by the System Hooksystem hook

Code Block
titleController Class with Endpoint for Webhook Consumption
@RestController
@RequestMapping("/api/dms/request")
public class ExampleRestController
{
    @PostMapping(value = "/update/metadata", produces = {"application/json"})
    public Map<String, Object> updateDmsObjectMetadata(@RequestBody Map<String, Object> dmsApiObjectList, 
                                                       @RequestHeader(value = "Authorization", required = true) String authorization)
    {
        doSomething(dmsApiObjectList, authorization);
        return dmsApiObjectList;
    }
    private void doSomething(Map<String, Object> dmsApiObjectList, String authorization)
    {
        // do something with the metadata
    }
}

Run Configuration

Running the Java application to register the service must include a number of parameters to communicate the services' existance and contact information to the Discovery Service. Find the full list of required parameters below:

...

...

Configuring the Webhook

To use the webhook service for the intended purpose of intercepting metadata when updating objects, we need to create a new entry in the Webhook list within our systems' SystemHookConfiguration systemHookConfiguration.json file , whereafter the API gateway (API Service) needs to be restarted.  (\system\systemHookConfiguration.json ). The url attribute must refer to the webhook service identifier (derived from the artifact ID in the services' maven file) and direct to one of the endpoints declared in the service.

The services responsible for the webhook execution need to be restarted after changing the systemHookConfiguration.json file. The corresponding services of each webhook are listed here. For the enrichment of metadata, the pertaining service would be the API-gateway. 

Code Block
titleExample SystemHookConfiguration.json
{
  "systemhooks": {
    "webhooks": [
      {
        "enable": true,
        "predicate": "spel:true",
        "type": "dms.request.update.metadata",
        "url": "<your host base url><protocol>://<webhook service identifier>/api/dms/request/update/metadata",
        "useDiscovery": true
      }
    ]
  }
}

Summary

In this tutorial, a Java-based method for Webhook consumption webhook consumption is outlined. The code presented, including the project structure and additional webhook management, can be found here in github. More concrete example webhook use cases are described in the articles linked below.


Info
iconfalse

Read on

Section


Column
width25%
Events 

Accessing Binary Content during an Import

Events

Insert excerpt

Events

Accessing Binary Content during an Import
Accessing Binary Content during an Import
nopaneltrue
 Keep reading


Webhooks

Column
width25%
Webhooks

Validation of Properties using Catalogs

Insert excerpt

Webhooks
Validation of Properties using Catalogs
Validation of Properties using Catalogs
nopaneltrue
 Keep reading


Messaging when Importing Documents
Column
width25%
Messaging when Importing Documents

Webhooks

Insert excerpt
Messaging when Importing Documents
Webhooks
Webhooks
nopaneltrue
Keep reading