Use SAP Cloud Platform,API Management to Expose REST interfaces from SAP Process Orchestration as Open APIs
This blog is the Part4 of the 5-part blog-series. In this blog, we will introduce REST Interfaces which are exposed from SAP Process Orchestration (SAP PO) can be exposed as Open APIs and managed through SAP Cloud Platform, API Management. Here with this blog you will be able to connect SAP Cloud Platform, API Management to your backend (SAP PO System) using cloud connector and will be able to manage REST Endpoints exposed in SAP PO.
Cloud Connector Overview
The SAP Cloud Platform cloud connector (cloud connector) serves as the link between on-demand applications in SAP Cloud Platform and existing on premise systems. The cloud connector runs as on premise agent in a secured network and acts as a reverse invoke proxy between the on-premise network and SAP Cloud Platform. Due to its reverse invoke support, you don’t need to configure the on-premise firewall to allow external access from the cloud to internal systems
To know more on SAP Cloud Platform, API Management, refer
In this blog I have taken an example of my (******) hanatrial account for SAP Cloud Platform, API Management, N75 as a backend(PO) system.
Pre-requisites
- You have access to N75 or any of the PO system
- IFLOW with REST endpoint should be available in PO system.
Let’s get started!
For Downloading and configuring cloud connector refer
https://blogs.sap.com/2015/02/11/set-up-your-sap-web-ide-on-hana-cloud-part-2/
Type https://localhost:**** on your browser following screen should come up
Enter User name and password to login as Admin
Click on Add Account to add an account
Fill in the appropriate details as shown below for your account
Here for SAP Cloud Platform, API Management I have taken example of my hanatrial account
Under Account Dashboard; Account should be added
As I have added my hanatrial account as host so my hanatrial account should be added as shown below
Now we will be adding the On Prem system for eg N75 (PO system)
Click on Cloud To On-Premise
Add Backend System as SAP Process Integration and Click Next
Select Protocol as HTTP and click Next
Add host and port of Backend System and click Next
In Virtual Host and port don’t put the same name and port as above
Select Principle Type as None and Click Next
Check the summary, select internal host checkbox and select Finish
System should get added
Click on Add button under Resources Accessible to add url path as”/” this is to consider all the resources after “/”
With this we have configured our backend system and now we will check in SAP API Management whether we can access REST services.
Let’s Manage REST Endpoints from SAP Cloud Platform, API Management!
Open SAP Cloud Platform Cockpit from where I can see under Connectivity – Cloud Connectors the successful connection to the on-prem system.
That’s All you need now let’s go to API Portal ->Services->click on API Management Tile->click on Access API Portal.
Click on Develop and Navigate to API Providers
Create API Provider and fill in the following details
Navigate to Authentication and give backend system details
In my case I am connecting to N75 PO system and catalog service settings look like this
To test the new connectivity, just create a new API Proxy. Give API Provider as “PISYS” and give URL(which we have copied above from PO system) for eg /RESTAdapter/REST_VAR4/test
and Save it.
Navigate to Test and click on the API provide Basic Authorization
Post a request by giving payload in Body and a response 200 OK should come
Let’s Manage our REST Endpoint!
Now lets apply traffic management policy which is Response Cache which will improve API’s performance through reduced latency and network traffic. It caches data from a backend resource to reduce the number of requests to the resource
Hi Shilpa, thanks for sharing the information. I followed the steps mentioned above, but got an error message: Exception while decoding chunked stream (error code: messaging.adaptors.http.ChunkException)
The difference in my step is I am trying to connect from cloud API to Java Gateway in PO. The target endpoint of the API proxy is something like: /igwj/odata/SAP/xxxxxxxxx. Could you see why it is happening?
Hello Kevin,
Can you please check which version of API Portal you are using as this was an issue and is fixed in API Portal (1.31.3).
Regards
Shilpa
Hi Kevin,
Can you please let us know if the endpoint requires authorization . If so can you please provide and check .. In case you are facing this issue further we can check .
Thanks,
Aparna
Hello Shilpa
I have an issue with test, can you please help me,
The connection is working fine
but the test now works fine
this is my api provider
i have this error
thanks a lot for your help
regards
Juan
Hello Juan,
As I understood rightly its a REST Interface.
Can you once try from postman and check whether you are getting a response for this which will confirm the interface and payload is correct.
Yes the screenshot shown above is API provider please check Authentication and Catalog Services settings .
Regards
Shilpa
Hello Silpha,
Thanks for your help
This is a local test
This is the provider
This si API Target Endpoint
This is the test not working
This is to show that the connection is working
Regards
Juan
Hello Juan,
Can you please give content type in header as in postman you don't need but if you are posting a request from test console you need to give content type in header.
I too faced the same problem.
Please check and let me know.
Regards
Shilpa
Hello Shilpa
Thanks again for your help
We are working in a project to expose a Rest service to internet, but we are not sure what is the best way. can you please recomend some guide?
I get the issue with URL, but the connection is Up and working, see this immage
get this new error
<!DOCTYPE html> <html> <head> <title>Error</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>An error occurred.</h1> <p>Sorry, the page you are looking for is currently unavailable.<br/> Please try again later.</p> </body> </html>
thanks a lot
Juan
Hello Juan,
I would like to replicate it in my hana trial.
Can you share host, port,payload and a user in that system so that I can replicate the same in my landscape.
Regards
shilpa
Hello shilpa
I think is other kind of issue
I tried with this public api:
Config in P2 Provider
This API proxy
Then I get the same issue
in this case I not need autentication
Thanks a lot for your help
Hello Juan,
I tried the same public API which you have mentioned and it worked for me.
I have not created API Provider for the same
Hello Juan,
I would request you to raise a Ticket on API Management.
Regards
Shilpa
Hello Shilpa
Thanks a lot for you help,
It’s a network problem, network team help me to identify the issue,
Now is working fine
Hi, there is a way to transform a rest service to an odata? I am consuming a rest service but I need the response to be consumed like odata service