Exploring API Portal and API Business Hub Enterprise APIs of SAP Integration Suite


Introduction:

In most of the customer use cases there is always request for automation and handling different API Lifecycle Management activities using exposed system APIs.In below blog will try to explore how to manage different artifacts of API Portal and API Business Hub Enterprise using APIs.

Setting up API access:

Subscribe to SAP Integration Suite Free tier plan by following blog post.

Once successfully subsrcribed to SAP Integration Suite,follow below deatiled steps to expore different capabilities of SAP API Management.

API Portal :

Once SAP Integration Suite with SAP API Management is enabled click Instances and Subscription to create instance

Refer SAP Help documentation for understanding different roles related to API Portal which includes below use cases

Configuring additional virtual hosts:

Using Self service admin role to configure virtual host to be used in SAP API Management

{ "role": "APIManagement.SelfService.Administrator"
}

Handling SAP API Management artifacts using APIs:

Using Administrative role we could perform CRUD operations on different APIs of SAP API Management.

{ "role": "APIPortal.Administrator"
}

Once required parameters are filled click on Create to complete instance creation.

Select created instance and click on Create Service Key to use it further to retrieve/update/delete API Portal artifacts.

Now you have ClientId,ClientSecret and tokenUrl to be used further to retireve API Portal artifacts through API.

API Business Hub Enterprise Portal :

Once SAP Integration Suite with SAP API Management is enabled click Instances and Subscription to create instance

Refer SAP Help documentation for understanding different roles related to API BHE

Application Developer role:

Using service key generated by specifying developer Id CRUD operation on applications, API packages, and API proxies and products could be done.

To successfully create an application via the API business hub enterprise, you must provide a valid developerId. This means that you must have already registered as an application developer to the API business hub enterprise service or you must have been onboarded by your adminstrator.This helps to differentiate multiple developers performing different operations on APIs.

Administrator Role:

This role helps to access the API business hub enterprise APIs (applications and attributes, API packages, API proxies and products, app developer and metering), and perform operations like create, update, and delete on various API business hub enterprise entities.

Once required parameters are filled click on Create to complete instance creation.

Select created instance and click on Create Service Key to use it further to retrieve/update/delete API Management,Business Hub Enterorise artifacts.

Exploring SAP API Management API portal APIs:

APIs related to API Portal could be accessed using below url.

https://<tenant_url>:443/apiportal/api/1.0/Management.svc

Make a metadata call to explore list of Enttity Sets you could use for API Portal.Use clientId,clientSecret and tokenURL from service key and make a call to below url.

https://<YourtenantspecificURL>:443/apiportal/api/1.0/Management.svc/$metadata

Below is list of EntitySet associated with APIPortal.

API Portal
RouteRules APIProviders
Applications ApplicationAdditionalPropertys
ContentPackageMappers APIProxies
ApiportalCloneMappings TemplateFileResources
KeyMapEntryValues RatePlans
APITargetEndPoints APIResources
TemplatePolicys APIProxyEndPoints
ACLProductLinkages Resources
DestinationAndUrlMappings KeyMapEntries
APIProviderAdditionalPropertys EndPointProperties
FlowRules Policies
Documentations Certificates
APIProducts FileResources
GenericKeyMapEntryValues CacheResources
Bills PolicyTemplateContainers
VirtualHosts DefaultFaultRules
CertificateStores APIProductAdditionalProperties
Steps FaultRules
GenericKeyMapEntries ConditionalFlowRules
Developers

Lets consider one of the EntitySet : APIProvider and see how to create,read and delete it using API.

CREATE:

Url:

https://<YourTenantSpecificURL>:443/apiportal/api/1.0/Management.svc/APIProviders

Authentication: OAuth 2.0 ( use the details from Service Key generated for API Portal

Operation: POST

Sample Payload:

{ "description": "ES5_1", "destType": "INTERNET", "host": "sapes5.sapdevcenter.com", "name": "ES5_1", "trustAll": true, "title": "ES5", "authType": "BASIC", "port": 443, "pathPrefix": "/sap/opu/odata", "useSSL": true, "isOnPremise": false, "cloudConnectorLocation": "null", "url": "/iwfnd/catalogservice/ServiceCollection", "userName": "User", "password": "PASSWORD"
}

DELETE:

Url:

https://<YOUR_API_PORTAL_URL>:443/apiportal/api/1.0/Management.svc/APIProviders('ES5_1')

Authentication: OAuth 2.0 ( use the details from Service Key generated for API Portal)

Operation: DELETE

Sample Payload:Not Required

Exploring API Business Hub Enterprise APIs:

APIs related to API Business Hub Enterprise could be accessed using below url.

https://<YourAPIBHEUrl>:443//odata/1.0/data.svc

Make a metadata call to explore list of Enttity Sets you could use for API BHE.Use clientId,clientSecret and tokenURL from service key and make a call to below url.

https://<YourAPIBHEUrl>:443//odata/1.0/data.svc/$metadata

Below is list of EntitySet associated with API BHE.

API BHE
APIMgmt.Applications
APIMgmt.APIProducts
APIMgmt.APIResources
APIMgmt.ProxyEndPoints
APIMgmt.APIProxies
APIMgmt.APIResourceDocumentations
APIMgmt.RatePlans
APIMgmt.Subscriptions
APIMgmt.Attributes
CatalogResources
Comments
Ratings

Lets consider one of the EntitySet : APIMgmt.Applications and see how to create,read and delete it using API.

CREATE:

Url:

https://<Your Business Hub Enterprise URL>:443/odata/1.0/data.svc/APIMgmt.Applications

Authentication: OAuth 2.0 ( use the details from Service Key generated for API BHE

Operation: POST

Sample Payload:

{ "id": "00000000000000000000000000000000", "version": "1", "title": "ES5TestSri", "description": null, "callbackurl": null, "developer_id": "<DEVELOPER_ID>", "ToSubscriptions": [{ "ToAPIProduct": [{ "__metadata": { "uri": "APIMgmt.APIProducts('SAPES5Application')" } } ], "ToRatePlan": [{ "__metadata": { "uri": "APIMgmt.RatePlans('c07q973e-b188-40ea-af2e-71365bc95ef2')" } } ], "id": "00000000000000000000000000000000" } ] }

Note: developer_id is optional and it is required if on behalf of other developer id we are performing CRUD operations on the API.

DELETE:

Url:

https://<YOUR_API_BHE_PORTAL_URL>:443/odata/1.0/data.svc/APIMgmt.Applications('4C71D3DF-3308-4FD7-B625-125029194873')

Authentication: OAuth 2.0 ( use the details from Service Key generated for API BHE )

Operation: DELETE

Sample Payload:Not Required

Conclusion

Hope this helps consultants and customer to automate SAP API Management Life Cycle Management Activities easily.