Skip to Content
Author's profile photo Shilpa Vij

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

 

Assigned Tags

      14 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      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?

       

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

      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

       

      Author's profile photo Aparna Khare
      Aparna Khare

      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

       

       

      Author's profile photo Juan Vasquez
      Juan Vasquez

      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

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

      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

      Author's profile photo Juan Vasquez
      Juan Vasquez

      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

       

       

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

      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

       

      Author's profile photo Juan Vasquez
      Juan Vasquez

      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

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

       

      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

      Author's profile photo Juan Vasquez
      Juan Vasquez

      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

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

      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

       

      Author's profile photo Shilpa Vij
      Shilpa Vij
      Blog Post Author

      Hello Juan,

      I would request you to raise a Ticket on API Management.

      Regards

      Shilpa

      Author's profile photo Juan Vasquez
      Juan Vasquez

      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

      Author's profile photo Rodrigo Francou
      Rodrigo Francou

      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