IMS v3 introduction
- When ION IMS sends a message with v3, the message is sent in a format that is compliant with swagger v2. This can be a breaking change for some applications. Therefore, a new IMS protocol version is required.
- Introduce a new method:
acceptedDocuments. Applications can call this method to check which documentsIMS is prepared to receive.This is a new method in ION. Therefore, a new protocol version is required. So an application can check whether ION is prepared for this method. This is relevant for on-premises deployments.
With that the integration flow with ION changes.
- ION exposes APIs to configure the IMS connection point. These APIs are a good replacement for the
discoverymethod.Extend the IMS endpoint definition with this property:
discovery=false. The same can also be set as part of theprotocolmethod.ION supports documents that are defined through the UI / API rather than through the
discoverymethod.You can now add documents in the same way as for a regular connection point.
Compared to IMS v2, IMS v3 offers these features:
- Consistent implementation for
multipartMessagemethod.In IMS v2, a message that was sent by ION itself deviated from the swagger definition. This issue has been fixed. It was the main reason to introduce version v3 because this might be a compatibility issue for some adopters.
- The
testmethod is replaced with theacceptedDocumentsmethod.You could use the v2
testmethod to check for a specific document if ION was prepared to receive it. TheacceptedDocumentsmethod lists the documents that IMS accepts for a specific connection point (logical-id). - More granular HTTP status codes.
multipartMessagemethod v2 throws a 412 error, both in case of configuration errors and malformatted messages. In v3 this is improved as follows:- A 412 error is thrown for configuration issues, such as an inactive connection point.
- A 400 error is thrown for bad messages, for example because of a missing property.
This way, adopters can handle the response more specifically.
- The
protocolmethod has an extra option to define whether thediscoverymethod is available.Traditionally, the two-way (bidirectional) IMS integration required that applications used the
discoverymethod to list the documents they can exchange. Nowadays, ION offers APIs to configure ION models. Applications can call these APIs to add and adjust the documents that are configured on a connection point. Therefore, thediscoverymethod is optional. Applications can use thehasDiscoveryproperty to indicate whether thediscoverymethod is implemented by them. The default value istrue. - The IMS v3
multipartMessagemethod includesdocumentNameandlogicalIdas HTTP parameters.When ION sends a
multipartMessage, the message includes thedocumentNameandlogicalIdHTTP parameters. This way, an application can route the message internally without having to parse the actual message. - The IMS v3
message/multipartmethod includes all IMS message parameters as HTTP parameters.