Assuming that you have enabled the API Management capability in Integration Suite, I will start with API Provider creation.
Connection
| Type | On Premise |
| Host | Virtual Host, as mentioned in Cloud Connector |
| Port | Virtual Port, as mentioned in Cloud Connector |
| Location ID | As mentioned in Cloud Connector |
| Authentication | NONE |
| Additional Properties: | sap-client: XXX |
Catalog Service Settings
| Path Prefix | /sap/opu/odata |
| Service Collection URL | /IWFND/CATALOGSERVICE;v=2/ServiceCollection |
| Authentication type | BASIC |
| Username | SAP's User Name for communication |
| Password | *** |
Test connection:
Select the API Provider, click on Discover to select the API which you wanted to use
Select the API & then click on Create.
Verify API Key - To verify the key which you are going to pass while calling the API.
Where do you get the API? - When you create the Product, and a Subscription, after creating a Subscription in the Developer Hub you will get a Key. That key is to be provided to the Consumer, and this Policy will verify the key sent by the consumer.
<!--Specify in the APIKey element where to look for the variable containing the api key-->
<VerifyAPIKey async='true' continueOnError='false' enabled='true'
xmlns='http://www.sap.com/apimgmt'>
<APIKey ref='request.header.apikey '/>
</VerifyAPIKey>Key Value Map Operations - To fetch the credentials saved in the Key Value Mapping
<KeyValueMapOperations mapIdentifier="SAP_S4HANA_Credentials" async="true" continueOnError="false" enabled="true" xmlns="http://www.sap.com/apimgmt">
<Get assignTo="private.usernameFromKVM" index="1">
<Key>
<Parameter>Username</Parameter>
</Key>
</Get>
<Get assignTo="private.passwordFromKVM" index="1">
<Key>
<Parameter>Password</Parameter>
</Key>
</Get>
<Scope>environment</Scope>
</KeyValueMapOperations>Basic Authentication - To pass the credentials fetched in the previous step.
<BasicAuthentication async='true' continueOnError='false' enabled='true' xmlns='http://www.sap.com/apimgmt'>
<Operation>Encode</Operation>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<User ref='private.usernameFromKVM'></User>
<Password ref='private.passwordFromKVM'></Password>
<AssignTo>request.header.Authorization</AssignTo>
</BasicAuthentication>Assign Message - So you get an error as, "{"fault":{"faultstring":"Unsupported Encoding \"br\"","detail":{"errorcode":"protocol.http.UnsupportedEncoding"}}}".
BR is a data format Brotli which is often defined by backend for webpage loading and not accepted by.... And this Assign Message will help your message reach the target.
<!-- This policy can be used to create or modify the standard HTTP request and response messages -->
<AssignMessage async="false" continueOnError="false" enabled="true" xmlns='http://www.sap.com/apimgmt'>
<!-- Sets a new value to the existing parameter -->
<Set>
<Headers>
<Header name="Accept-Encoding">gzip,deflate</Header>
</Headers>
</Set>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<AssignTo createNew="false" type="request"></AssignTo>
</AssignMessage>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
| User | Count |
|---|---|
| 11 | |
| 9 | |
| 6 | |
| 6 | |
| 5 | |
| 5 | |
| 5 | |
| 4 | |
| 4 | |
| 4 |