APAR status
Closed as program error.
Error description
The API Connect migration utility (AMU) port-to-apigw command does not replace the $(request.body.*) with $(request.parsed_body.*) in the target url Steps to reproduce 1- In API Connect version 5.0.x, create an API which uses the input of the body to create the query parameters for this invoke target url with $(request.body.*) such as: === - invoke: cache-response: protocol cache-ttl: 900 password: $(backend-password) stop-on-error: - ConnectionError target-url: $(backend-url)/test/rest/myService?UserId=$(request.body.userId) &PartId=$(request.body.partId) timeout: 60 title: invoke username: $(backend-username) verb: POST version: 1.0.0 ===== 2- Migrate the API to apigw using the AMU port-to-apigw (for example the emulation layer (invoke version 1.5.0)) Result: The invoke becomes once the API is converted to a APIGW ==== - invoke: cache-response: protocol cache-ttl: 900 password: $(backend-password) stop-on-error: - ConnectionError target-url: $(backend-url)/test/rest/myService?UserId=$(request.body.userId) &PartId=$(request.body.partId) timeout: 60 title: invoke username: $(backend-username) verb: POST version: 1.5.0 comment: - 'INV17: Invoke policy set to ´invoke_1.5.0´, converting invoke to ´invoke_1.5.0´. For details, see: https://www.ibm.com/support/knowledgecenter/SSMNED_v10/com.ibm.a pic.porting.doc/porting_messages.html#INVOKE_WRAPPER_FOUND' ==== When you call the API afterwards, you see that the call being made does not contain the value for the query parameters Dec 14 11:29:25 DataPowerDEV [api_gw_v10][0x88c00028][apigw][error] apigw(api_gw_v10): trans(223507)[request][10.136.241.61] gtid(042204115fd74c9400036913): The assembly stops on operation error. URL: https://<api-endpoint-hostname>m/test/rest/myService?UserId=&Par tId=, code: 400.
Local fix
Workaround Modify the target url manually to either be: $(backend-url)/test/rest/myService?UserId=$(request.parsed_body. userId)&PartId=$(request.parsed_body.partId) and you will get the expected result
Problem summary
Using $(request.body) in target-url in invoke results in usage of unparsed data
Problem conclusion
AMU will now convert $(request.body) to $(request.parsed_body) in target-url of invoke. Fix will go into AMU v10.0.1.2 and later
Temporary fix
Comments
APAR Information
APAR number
LI81899
Reported component name
API CONNECT ENT
Reported component ID
5725Z2201
Reported release
A0X
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2020-12-16
Closed date
2021-03-06
Last modified date
2021-03-06
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
API CONNECT ENT
Fixed component ID
5725Z2201
Applicable component levels
RA0X PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSMNED","label":"IBM API Connect"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"A0X","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
29 September 2021