Show me the ‘API’ money. A step by step guide.
The world of integration is changing really fast nowadays. It seems like only yesterday when everybody started to talk about SOA principles. In the last years many companies have done a heavy investment implementing their services in SOAP and REST/OData.
With the digital revolution there is a need of consume information on new ways, also companies need to expose their services to allow to developers to create new apps, everything has to be fast, easy to use, documented and of course secure.
Most SAP customers already have their interfaces built on PO/PI or Gateway, here is where API Management comes in, as a key end point in our landscape, to provide this information both internally and externally. But this new product it’s not limited to just traditional SAP landscapes API Management allows you to connect to any system, even other services outside your organization.
Some months ago we had the opportunity to experience SAP API management, first in the Beta program and then later in the customer validation.
During these sessions we had the chance to implement the scenario I’m going to explain:
AS IS
One of our customers is a wholesale company that wants to improve their catalog of products, they are also trying to find new business opportunities and build the business case to fund the project.
They have already built many services in their landscape, but it’s still too complex.
They need a platform with the following attributes:
- Simple, scalable and secure.
- On boarding process for third party developers.
- Service discovery.
- Well documented
- Analytics
- Integrated with SAP.
- Monetise
- Role based
Solution: SAP API MANAGEMENT
In the following diagram we can see the current landscape of the wholesale company.
In terms of integration, they already have a Gateway server that exposes OData services to be consumed by UI5 Apps.
And they also have a PO box with some BPM process and EDI interfaces.
What we wanted to add, is an extra layer to manage APIs consuming resources from SAP Gateway.
These APIs could be consumed by mobile devices, message brokers, and even by developers inside the organisation.
Our target was to create two APIs:
- A public API to receive the catalog of products from multiple providers.
- A “Price Comparator”, the API that our customer is going to monetize.
And now let’s be hands on and build the scenario!
First we configure the connection to our Gateway box, and this is where we find the first issue. API manager doesn’t connect automatically with Cloud Connector (feedback has been shared with SAP and they will work on that).
By using the option to discover the service, in literally 2 minutes we have our first API available in the system.
- First we have to chose the system we want to connect to, in our scenario we are connecting to a gateway service.
- Then API Management will show us the list of services available in our system.
- Finally, we will choose one and will assign the base path we want to use to expose the data.
Once we have imported the service, API management will create the API in our system, reading all the documentation for the fields and services available in the gateway system.
We have our API imported, it’s time too add policies to our APIs. A policy is a program that executes a specific function at runtime and API management provides more than 20 policies out of the box.
One of the things I really like about API management is the new look and feel really easy to understand, within a few clicks our API has two policies: Check quota & check API key.
In the public API we are just checking the API Key to validate that is consumed by one of the configured applications.
Additionally, we added a quota policy in the Price Comparator, so we’ll be able to control and monetize our API (in future versions they will add more tools around this concept).
Once we have defined the APIs, we create some applications, it’ll be by subscribing to an Application how developers will get the key required to access the APIs.
And finally, after playing a bit with SOAP UI to automate my tests, these are the results displayed in a nice out of the box Lumira style dashboard.
I think SAP has done really smart move adding API Management in their portfolio, it’ll allow to existing customers to create their own APIs with a really low investment reusing what they have implemented in their PO/Gateway systems. It’s really easy to use, secure and the onboarding system allows to have a platform really developer friendly to discover the APIs avaiable in your organization.
I hope you found this blog useful!
Jorge
Jorge
Thanks for this concise but very well informative blog.
I am sure there are many out there who will benefit....
Great blog
I have a couple of questions
If there already an Odata service that Gateway is providing then what additional benefits does the API Management layer provide? Most UX development tools can consume Odata over REST/JSON.I am still puzzle.
Is API Manager same as HCI?
Jayshree
Hi Jayshree,
SAP API Management is not the same as HCI, although it can in some cases fulfill the same functions as HCI, but it can also work in conjunction with HCI. HCI is actually two products, 1) Process Integration in the Cloud ; 2) Data Services, for real-time use of and transfer of data.
SAP API Management is neither of these. It is a management tool, used to Secure and Expose SAP and NonSAP Data. A better use of APIs is in the microservices context, of exposing small pieces of functionality which can be reused many times in various ways, through role based access, to increase ROI, rather than to simply expose large SOA style services.
Additionally SAP API Management can scale to Billions of calls per month (thousands of transactions per second), with robust security policies in place, caching features to reduce backend load and reduce latency issues, transform data instantly, and throttle traffic as needed, things you would not want to do with HCI.
There are many other ways in which API Management and HCI differ or would work together but I hope this has given you a better insight into the above scenario.
Regards,
Elijah
Great work! Many thanks for sharing.