Guidelines for application teams that switch from v2 to v3
For a general understanding of the IMS interaction, see IMS interaction.
If your application currently supports v2, you must complete at least these steps to support v3:
-
Adjust: When calling the ION
versions
method, check whether ION supports at least v3. -
If you still use the IMS
message
method, these are two options:- multipartMessage method adoption:
- Adopt the
v3/multipartMessage
method. - Adjust your
protocol
response to return"messageMethod" : "multipartMessage"
and"version"
:"v3"
.
- Adopt the
- message/multipart method adoption:
- Adopt the v3/message/multipart method.
- Adjust your protocol response to return
"messageMethod" : "message" and “version” : “v3”
.
- multipartMessage method adoption:
-
Decide whether you are going to continue to populate documents
through the
discovery
method. Alternatively, you can configure documents by pushing them to ION by calling the appropriate ION API methods.If you plan to switch to using the ION APIs, you must add this property in the protocol response:"hasDiscovery" : false
-
In IMS v2, when ION
sends a message , it actually deviates from the IMS swagger description.
With IMS v3 that issue is fixed, but as a consequence you receive the message in a different format from ION.
The differences are:
- For the multipartMessage method:
- The body for the payload now has a fixed
Content-Disposition: form-data;name="MessagePayload"
. With v2 ION would send theContent-Disposition
with the same name as used in theContent-Disposition
of the parameter body. - The body for the parameters now has a fixed
Content-Disposition: form-data;name="ParameterRequest"
. With v2 ION would send theContent-Disposition
with the same name as used in theContent-Disposition
of the payload body.
- The body for the payload now has a fixed
- For the message/multipart method: The body for the payload now has a
fixed
Content-Disposition: form-data;name="MessagePayload"
. With v2 ION would send theContent-Disposition
with the same name as used in theContent-Disposition
of the parameter body.
- For the multipartMessage method:
-
After successfully processing a
multipartMessage
ormessage/multipart
v3 request, ION sends an HTTP status code 202 (Accepted) instead of 201 (Created). We recommend that you handle any 2xx HTTP status response as a positive response. If you check specifically for 201, you must change your implementation. -
Based on the
multipartMessage
ormessage/multipart
, HTTP status response that is provided by ION, you now can better identify these situations:- The method was called incorrectly: HTTP status response 400
- The request itself is correct but the ION side is not yet configured to receive the message: HTTP status response 412
-
In IMS v3, the
acceptedDocuments
method is introduced as a replacement for thetest
method. With a single method you now can retrieve all documents that are accepted by a connection point in ION. -
When ION sends a v3
message using the
multipartMessage
method, it includes thedocumentName
andlogicalId
as HTTP parameters. Therefore, you can use these parameters to route the incoming request instead of having to parse the parameter body. When ION sends a v3 message using themessage/multipart
method, it includes all the IMS message parameters as HTTP parameters.