SlideShare una empresa de Scribd logo
1 de 48
RESTful Adapter for SAP Process Integration
Introduction & Overview
RESTful Adapter - Basics

What can the RESTful adapter do for you?
RESTful Adapter - Basics

What can the RESTful adapter do for you?
Enable you to use SAP Process Integration to:
 Publish „Pragmatic“* REST Services in XML & JSON
 Invoke any„possible“ REST API or HTTP Resource

*) for a reference visit the excellent APIGee blog series on the topic
RESTful Adapter - Basics

It‘s more then an just another adapter!
RESTful Adapter - Basics

It‘s more then an just another adapter!
 Convention over Configuration driven approach!
 (using metadata means less configuration)

 API Console & WADL support to test & communicate with
stakeholders

It‘s Developer & Operations „friendly“
RESTful Adapter - Basics

The 3 main building blocks of the adapter:
 The adapter runtime

Adapter

 PI sender/receiver channels
Describes

 Design Conventions
 Model HTTP communication by convention
 Metadata enables API Console

 Web UI (on top of adapter)
 Test HTTP Calls
 Display API Console & WADL*

Design Conventions
(WSDL/Msgs/JSON)

Enables
Web UI

*) available upwards PI >= 7.30
RESTful Adapter - Basics

What do we mean by Design Conventions?
RESTful Adapter - Basics

What do we mean by Design Conventions?
 ESR Conventions to model http calls as PI messages
 ESR Conventions to group resources as service interfaces
 Conventions to use XML internal and „speak“ JSON externally
RESTful Adapter - Basics

What is the benefit of this Design Conventions?
 ESR metadata drives the API Console / WADL
 Explain your REST API in a simple Web UI!

 PI tools (mappings) can access any attribute of a http call
 No dynamic configurations or adaper modules needed!

 Test drive any http call from the adapter Web UI
 Testdrive http calls before building a complete scenario

 Convention over Configuration aproach!
RESTful Adapter - Basics

.. JSON is enabled by Conventions too!
RESTful Adapter - Basics

.. JSON is enabled by Conventions too!
 Any published RESTful service is usable with XML & JSON
 The adapter uses http content negotiation features to detect
the expected content (Accept & Content-type headers)
 No intensive configuration for JSON needed (modules etc...)
 Only choose: „XML compliant“ or „JSON compliant“ how XML turns
into JSON and back...
RESTful Adapter – Design Coventions

Action speaks louder then words
Let‘s see how it works by an example that comes with the
adapter!
RESTful Adapter – Design Coventions

Action speaks louder then words
 The adapter comes with a full CRUD example of a Partner
resource stored in a database (along with more examples)
 We will take a look at the example how a http POST call is
modeled and published by the conventions!
RESTful Adapter – Design Coventions

Our example:
 http POST call request with partner data
 that will return 201 Created status a location link to the new
partner resource
Adapter
POST http://myhost:50000/../Partner
HTTP
Client

Location: http://myhost:50000/../Partner/1
RESTful Adapter – Design Coventions

Our example request as http call:
POST /ROAWeb/Resources/Partner?sample=123 HTTP/1.1
Host:
myPIHost:50000
Accept:
application/xml
Content-Type:
application/xml; charset=utf-8
Authorization:
Basic aHR0cHdhdGNoOmY=
SampleHeader: testValue
<?xml version="1.0" encoding="UTF-8"?>
<Partner>
<firstName>Anton</firstName>
<lastName>Schmitt</lastName>
<birthday>1977-01-12</birthday>
<email>a.schmit@kate-group.com</email>
</Partner>

URI Path, Method,
Query Parameters

Http headers
(we‘re interested in
sample header)

POST data (body)
RESTful Adapter – Design Coventions

Our example request as PI request message
<urn:POST_Request xmlns:urn="urn:my:resource">
<identification>
<resource name="Partner"/>
<query><sample>123</sample> </query>
</identification>
<headers>
<SampleHeader>testValue</SampleHeader>
</headers>
<body>
<Partner>
<firstName>Anton</firstName>
<lastName>Schmitt</lastName>
<birthday>1977-01-12</birthday>
<email>a.schmit@kate-group.com</email>
</Partner>
</body>
</urn:POST>

Parsed URI Path, Method,
Query Parameters

Http headers
(we‘re interested in
sample header)

POST data (body)
RESTful Adapter – Design Coventions

And how would the response look like?
RESTful Adapter – Design Coventions

Our example response as PI response message:
<urn:POST_Response xmlns:urn="urn:my:resource">
<httpStatusCode>201</httpStatusCode>
<headers>
<location>
http://myHost:50000/ROAWeb/Resources/Partner/1
</location>
</headers>
</urn:POST>

HTTP Status: 201 Created
Http headers
(e.g.: here Location!)

*) You might wonder about the origin of the Location header,
this will be a few slides on ;)
RESTful Adapter – Design Coventions

Our example response as http call:
HTTP/1.1 201 Created

HTTP Status: 201 Created

….
Content-Type: application/xml; charset=utf-8
Location: http://myhost:50000/ROAWeb/Resources/Partner/1

Http headers
(e.g.: Location!)
RESTful Adapter – Design Coventions

Now wasn‘t that simple? 
RESTful Adapter – Design Coventions

Now wasn‘t that simple? 
By that convention you set/access in a mapping:
 any path or resource id information (pre parsed)
 any query parameter
 any header parameter
 any http status code (or reason)
 any body (payload) – raw or as XML*
RESTful Adapter – Design Coventions

You might now just go and try the call with the API Console
 As any call modeled by with this convention is exporable
through the API Console
Just go here* on your PI Install:
http://<yourPIHost>:50000/ROAWeb/Administration

*(/ROAWeb is the base path of the adaper)
RESTful Adapter – Design Coventions

The API Console enables you to:
 Invoke RESTful Services (with XML & JSON)
 Displays query/header parameters or the schema
 Generates sample calls for PUT/POST requests
RESTful Adapter – Design Coventions

The API Console (for our POST Request)

Send
Payload
Generate Sample Request
Display Schema
XML / JSON
Display result
RESTful Adapter – Design Coventions

Wait....but how did we create a current location header?
RESTful Adapter – Design Coventions

Wait....but how did we create a current location header?
 The adapter comes with a mapping lib to construct relative &
absolute links in the context of a call easily*
 The functions take your resource ID and returns the current
URI path + ID similar like Java REST frameworks (e.g. Jersey)
 (e.g. Supply „1“ turns into http://myhost:50000/.../Partner/1 )

*)Note! This feature is restricted to certain SP Levels (see SAP Note ) .
However we have a workaround for older versions ;)))
RESTful Adapter – Design Coventions

And dynamic resource uri‘s by calling a RESTful servcie?
RESTful Adapter – Design Coventions

And dynamic resource uri‘s by calling a RESTful servcie?
 As in previous example stated anything can be set
 Dynamic (in a Message Mapping)
 Static (in a Channel Configuration)
 Or both combined

 URLs, URIs, Resource Ids, Host, Port, etc...
RESTful Adapter - Resources

How are different calls to a resource grouped in an PI interface?
RESTful Adapter - Resources

How are different calls to a resource grouped in an PI interface?
3 different ways to do it, group by:
 1 Interface per resource (e.g. Simple CRUD) that responds to
all HTTP Methods on this resource („Method oriented“)
 1 Interface hosts several resources and responds to all HTTP
Methods below one base path („API oriented“)
 Generic: Just receive anything below one base path
(„Generic“)
RESTful Adapter - Resources

How are different calls to a resource grouped in an PI interface?
E.g. Our example Partner resource with CRUD methods

/<baseURI>/Partner
Bound by
channel

Service Interface: Partner
Operations:
POST (Request/Response)
GET (Request/Response)
PUT (Request/Response)
DELETE (Request/Response/Fault*)

*) Faults are not mandatory but usable if needed to cover fault replies
from receiver adapters
RESTful Adapter – Errors & HTTP Status

And how about PI faults & system errors?
RESTful Adapter – Erros & HTTP Status

And how about PI faults & system errors?
Few facts first:
 RESTful HTTP Status treatment and PI internal
Success/Errorhandling differs!
 PI: Response(happy Path), (defined) Faults & System Erros on
Transport
 RESTful: Plain HTTP Status Code
RESTful Adapter – Erros & HTTP Status

And how about PI faults & system errors?
The adapter closes this gap by:
 Enable you to return any http status in published Services
from regular response or fault messages (System Errors
default to 500, but could be overriden)
 Enable you to receive any http status for inspection / usage
as regular response message from a receiver channel (or by
your choice as fault or system error)
RESTful Adapter - JSON

And how about JSON ?
RESTful Adapter - JSON

And how about JSON ?
 Any JSON input or output is available as XML internally in PI
 The next few examples show the 2 different ways to do it to:
 Work XML „centric“ or
 Work JSON „centric“
RESTful Adapter - Basics

.. JSON „XML centric“ example!
{

JSON

"tns:company": {
"@xmlns:tns": “urn:my:comp",
"name": "My Company",
"address": {
"city": "München",
"zipCode": "83503",
"houseNumber": "93a",
"country": “DE"
}
}
}

XML
<?xml version="1.0" encoding="UTF-8"?>
<tns:company xmlns:tns=“urn:my:comp">
<name>My Company</name>
<address>
<city>München</city>
<zipCode>83503</zipCode>
<houseNumber>93a</houseNumber>
<country>DE</country>
</address>
</tns:company>

This is forth & backward compatible!
RESTful Adapter - Basics

.. JSON „JSON centric“ example!

JSON
[
"1",
"2„,
3
]

XML
<?xml version="1.0" encoding="UTF-8"?>
<a class="array">
<e type="string">1</e>
<e type="string">2</e>
<e type="number">3</e>
</a>

This is forth & backward compatible!
RESTful Adapter - Operations

And how about operations & monitoring?
RESTful Adapter - Operations

And how about operations & monitoring?
 Channels can adjust log levels to show http information
 None, only headers or all (see below)

Method & URI

Headers

Payload
RESTAdapter - Security

What Security standards are supported?





Basic Authentication
NTLM 1.x/2.x
SSL Client Certificate
oAuth1 / 2
RESTAdapter - Misc

What about other misc HTTP topics?
RESTAdapter - Misc

What about other misc HTTP topics?
E.g.:
 Posting and receiving Form Posts – fully supported
 Fits often as more „natural“ choice

 Post File Uploads – fully supported as multipart request
 Imagine posting a form with documents to start a Process?
RESTful Adapter - Samples

And what Samples do we provide „out of the box“?
RESTful Adapter - Samples

And what Samples do we provide „out of the box“?
Samples for publishing RESTful Example Services:
 Publish REST Service in XML/JSON from relational Database
(GET/PUT/POST/DELETE, JSON, Location Headers)
 REST Form POST Request
RESTful Adapter - Samples

And what Samples do we provide „out of the box“?
Samples how to invoke RESTful Sample Services:
 Call Twilio SMS API (JSON, Form Post, AuthToken)
 Call LinkedIn API (oAuth1, JSON/XML)
 Call Salesforce API (oAuth2, JSON/XML, PATCH Method)
RESTful Adapter

Interested in our SAP Certified offer?

We are pleased to hear your feedback

30 Day trial of the adapter available!
RESTful Adapter

Interested in our SAP Certified offer?

Contact us at :





WWW: http:www//kate-group.com/
T +49 711 90 79 64 65
F +49 711 90 79 64 66
E info@kate-group.com

Más contenido relacionado

La actualidad más candente

Form Handling using PHP
Form Handling using PHPForm Handling using PHP
Form Handling using PHPNisa Soomro
 
REST API Best (Recommended) Practices
REST API Best (Recommended) PracticesREST API Best (Recommended) Practices
REST API Best (Recommended) PracticesRasheed Waraich
 
Exploring the details of APEX sessions
Exploring the details of APEX sessionsExploring the details of APEX sessions
Exploring the details of APEX sessionsMenno Hoogendijk
 
Transform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityTransform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityMuleSoft
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache TomcatAuwal Amshi
 
エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』Naoki Yoshitake
 
Introduction to ajax
Introduction  to  ajaxIntroduction  to  ajax
Introduction to ajaxPihu Goel
 
SuccessFactors BizX overivew
SuccessFactors BizX overivewSuccessFactors BizX overivew
SuccessFactors BizX overivewAndrey Kulikov
 
Introduction to API Led connectivity
Introduction to API Led connectivityIntroduction to API Led connectivity
Introduction to API Led connectivityDeepak Bisht
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide Isabelle Mauny
 
SAP SuccessFactors Recruiting
 SAP SuccessFactors Recruiting SAP SuccessFactors Recruiting
SAP SuccessFactors RecruitingJuan Andres Peiro
 
Active Server Page(ASP)
Active Server Page(ASP)Active Server Page(ASP)
Active Server Page(ASP)Keshab Nath
 
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)Sumanth Donthi
 

La actualidad más candente (20)

Form Handling using PHP
Form Handling using PHPForm Handling using PHP
Form Handling using PHP
 
REST API Best (Recommended) Practices
REST API Best (Recommended) PracticesREST API Best (Recommended) Practices
REST API Best (Recommended) Practices
 
MYSQL - PHP Database Connectivity
MYSQL - PHP Database ConnectivityMYSQL - PHP Database Connectivity
MYSQL - PHP Database Connectivity
 
Exploring the details of APEX sessions
Exploring the details of APEX sessionsExploring the details of APEX sessions
Exploring the details of APEX sessions
 
Transform Your Business with API-led Connectivity
Transform Your Business with API-led ConnectivityTransform Your Business with API-led Connectivity
Transform Your Business with API-led Connectivity
 
Web container and Apache Tomcat
Web container and Apache TomcatWeb container and Apache Tomcat
Web container and Apache Tomcat
 
エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』エンジニアのための勉強会 #3 『RESTful API』
エンジニアのための勉強会 #3 『RESTful API』
 
Introduction to ajax
Introduction  to  ajaxIntroduction  to  ajax
Introduction to ajax
 
Php mysql ppt
Php mysql pptPhp mysql ppt
Php mysql ppt
 
SuccessFactors BizX overivew
SuccessFactors BizX overivewSuccessFactors BizX overivew
SuccessFactors BizX overivew
 
Introduction to API Led connectivity
Introduction to API Led connectivityIntroduction to API Led connectivity
Introduction to API Led connectivity
 
What is an API
What is an APIWhat is an API
What is an API
 
APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide APISecurity_OWASP_MitigationGuide
APISecurity_OWASP_MitigationGuide
 
SAP SuccessFactors Recruiting
 SAP SuccessFactors Recruiting SAP SuccessFactors Recruiting
SAP SuccessFactors Recruiting
 
Api types
Api typesApi types
Api types
 
Cookies & Session
Cookies & SessionCookies & Session
Cookies & Session
 
Jsp element
Jsp elementJsp element
Jsp element
 
What's an api
What's an apiWhat's an api
What's an api
 
Active Server Page(ASP)
Active Server Page(ASP)Active Server Page(ASP)
Active Server Page(ASP)
 
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
API Governance and GitOps in Hybrid Integration Platform (MuleSoft)
 

Destacado

Getting started with SAP PI/PO an overview presentation
Getting started with SAP PI/PO an overview presentationGetting started with SAP PI/PO an overview presentation
Getting started with SAP PI/PO an overview presentationFigaf.com
 
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process IntegrationKaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process IntegrationKate_RESTful
 
Predicting Pre-click Quality for Native Advertisements
Predicting Pre-click Quality for Native AdvertisementsPredicting Pre-click Quality for Native Advertisements
Predicting Pre-click Quality for Native AdvertisementsMounia Lalmas-Roelleke
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data AccessPat Patterson
 
Sap interface overview
Sap interface overviewSap interface overview
Sap interface overviewgnareshmbacwa
 
Use the SAP Content Server for Your Document Imaging and Archiving Needs!
Use the SAP Content Server for Your Document Imaging and Archiving Needs!Use the SAP Content Server for Your Document Imaging and Archiving Needs!
Use the SAP Content Server for Your Document Imaging and Archiving Needs!Verbella CMG
 
SAP Integration: Best Practices | MuleSoft
SAP Integration: Best Practices | MuleSoftSAP Integration: Best Practices | MuleSoft
SAP Integration: Best Practices | MuleSoftMuleSoft
 

Destacado (8)

SAP PI and SOA Overview
SAP PI and SOA OverviewSAP PI and SOA Overview
SAP PI and SOA Overview
 
Getting started with SAP PI/PO an overview presentation
Getting started with SAP PI/PO an overview presentationGetting started with SAP PI/PO an overview presentation
Getting started with SAP PI/PO an overview presentation
 
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process IntegrationKaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
KaTe AMQP Adapter for SAP Process Orchestration / SAP Process Integration
 
Predicting Pre-click Quality for Native Advertisements
Predicting Pre-click Quality for Native AdvertisementsPredicting Pre-click Quality for Native Advertisements
Predicting Pre-click Quality for Native Advertisements
 
OData: A Standard API for Data Access
OData: A Standard API for Data AccessOData: A Standard API for Data Access
OData: A Standard API for Data Access
 
Sap interface overview
Sap interface overviewSap interface overview
Sap interface overview
 
Use the SAP Content Server for Your Document Imaging and Archiving Needs!
Use the SAP Content Server for Your Document Imaging and Archiving Needs!Use the SAP Content Server for Your Document Imaging and Archiving Needs!
Use the SAP Content Server for Your Document Imaging and Archiving Needs!
 
SAP Integration: Best Practices | MuleSoft
SAP Integration: Best Practices | MuleSoftSAP Integration: Best Practices | MuleSoft
SAP Integration: Best Practices | MuleSoft
 

Similar a KaTe RESTful adapter for SAP Process Integration: Introduction

LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST APIstephenbhadran
 
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)Pete Morano
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandMatthew Turland
 
RESTful services
RESTful servicesRESTful services
RESTful servicesgouthamrv
 
RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座Li Yi
 
WSO2 ESB Integration with REST
WSO2 ESB Integration with RESTWSO2 ESB Integration with REST
WSO2 ESB Integration with RESTWSO2
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financialRule_Financial
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swiftTim Burks
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Representational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASRepresentational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASGuy K. Kloss
 
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful  Protocol BuffersJavaOne 2009 - TS-5276 - RESTful  Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol BuffersMatt O'Keefe
 

Similar a KaTe RESTful adapter for SAP Process Integration: Introduction (20)

LAJUG Napster REST API
LAJUG Napster REST APILAJUG Napster REST API
LAJUG Napster REST API
 
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
Understanding and Using Rest APIs (SocialDevCamp Chicago 2009)
 
Creating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew TurlandCreating Web Services with Zend Framework - Matthew Turland
Creating Web Services with Zend Framework - Matthew Turland
 
RESTful services
RESTful servicesRESTful services
RESTful services
 
Restful API's with ColdFusion
Restful API's with ColdFusionRestful API's with ColdFusion
Restful API's with ColdFusion
 
Unerstanding and Using RESTful APIs
Unerstanding and Using RESTful APIsUnerstanding and Using RESTful APIs
Unerstanding and Using RESTful APIs
 
Rest web service
Rest web serviceRest web service
Rest web service
 
RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座RESTful SOA - 中科院暑期讲座
RESTful SOA - 中科院暑期讲座
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
WSO2 ESB Integration with REST
WSO2 ESB Integration with RESTWSO2 ESB Integration with REST
WSO2 ESB Integration with REST
 
Slim Framework
Slim FrameworkSlim Framework
Slim Framework
 
Introduction To REST
Introduction To RESTIntroduction To REST
Introduction To REST
 
Restful web services rule financial
Restful web services   rule financialRestful web services   rule financial
Restful web services rule financial
 
Apitesting.pptx
Apitesting.pptxApitesting.pptx
Apitesting.pptx
 
Rest with Spring
Rest with SpringRest with Spring
Rest with Spring
 
Networked APIs with swift
Networked APIs with swiftNetworked APIs with swift
Networked APIs with swift
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Salesforce Integration
Salesforce IntegrationSalesforce Integration
Salesforce Integration
 
Representational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASRepresentational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOAS
 
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful  Protocol BuffersJavaOne 2009 - TS-5276 - RESTful  Protocol Buffers
JavaOne 2009 - TS-5276 - RESTful Protocol Buffers
 

Último

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesExploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesSanjay Willie
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 

Último (20)

A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your QueriesExploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
Exploring ChatGPT Prompt Hacks To Maximally Optimise Your Queries
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 

KaTe RESTful adapter for SAP Process Integration: Introduction

  • 1. RESTful Adapter for SAP Process Integration Introduction & Overview
  • 2. RESTful Adapter - Basics What can the RESTful adapter do for you?
  • 3. RESTful Adapter - Basics What can the RESTful adapter do for you? Enable you to use SAP Process Integration to:  Publish „Pragmatic“* REST Services in XML & JSON  Invoke any„possible“ REST API or HTTP Resource *) for a reference visit the excellent APIGee blog series on the topic
  • 4. RESTful Adapter - Basics It‘s more then an just another adapter!
  • 5. RESTful Adapter - Basics It‘s more then an just another adapter!  Convention over Configuration driven approach!  (using metadata means less configuration)  API Console & WADL support to test & communicate with stakeholders It‘s Developer & Operations „friendly“
  • 6. RESTful Adapter - Basics The 3 main building blocks of the adapter:  The adapter runtime Adapter  PI sender/receiver channels Describes  Design Conventions  Model HTTP communication by convention  Metadata enables API Console  Web UI (on top of adapter)  Test HTTP Calls  Display API Console & WADL* Design Conventions (WSDL/Msgs/JSON) Enables Web UI *) available upwards PI >= 7.30
  • 7. RESTful Adapter - Basics What do we mean by Design Conventions?
  • 8. RESTful Adapter - Basics What do we mean by Design Conventions?  ESR Conventions to model http calls as PI messages  ESR Conventions to group resources as service interfaces  Conventions to use XML internal and „speak“ JSON externally
  • 9. RESTful Adapter - Basics What is the benefit of this Design Conventions?  ESR metadata drives the API Console / WADL  Explain your REST API in a simple Web UI!  PI tools (mappings) can access any attribute of a http call  No dynamic configurations or adaper modules needed!  Test drive any http call from the adapter Web UI  Testdrive http calls before building a complete scenario  Convention over Configuration aproach!
  • 10. RESTful Adapter - Basics .. JSON is enabled by Conventions too!
  • 11. RESTful Adapter - Basics .. JSON is enabled by Conventions too!  Any published RESTful service is usable with XML & JSON  The adapter uses http content negotiation features to detect the expected content (Accept & Content-type headers)  No intensive configuration for JSON needed (modules etc...)  Only choose: „XML compliant“ or „JSON compliant“ how XML turns into JSON and back...
  • 12. RESTful Adapter – Design Coventions Action speaks louder then words Let‘s see how it works by an example that comes with the adapter!
  • 13. RESTful Adapter – Design Coventions Action speaks louder then words  The adapter comes with a full CRUD example of a Partner resource stored in a database (along with more examples)  We will take a look at the example how a http POST call is modeled and published by the conventions!
  • 14. RESTful Adapter – Design Coventions Our example:  http POST call request with partner data  that will return 201 Created status a location link to the new partner resource Adapter POST http://myhost:50000/../Partner HTTP Client Location: http://myhost:50000/../Partner/1
  • 15. RESTful Adapter – Design Coventions Our example request as http call: POST /ROAWeb/Resources/Partner?sample=123 HTTP/1.1 Host: myPIHost:50000 Accept: application/xml Content-Type: application/xml; charset=utf-8 Authorization: Basic aHR0cHdhdGNoOmY= SampleHeader: testValue <?xml version="1.0" encoding="UTF-8"?> <Partner> <firstName>Anton</firstName> <lastName>Schmitt</lastName> <birthday>1977-01-12</birthday> <email>a.schmit@kate-group.com</email> </Partner> URI Path, Method, Query Parameters Http headers (we‘re interested in sample header) POST data (body)
  • 16. RESTful Adapter – Design Coventions Our example request as PI request message <urn:POST_Request xmlns:urn="urn:my:resource"> <identification> <resource name="Partner"/> <query><sample>123</sample> </query> </identification> <headers> <SampleHeader>testValue</SampleHeader> </headers> <body> <Partner> <firstName>Anton</firstName> <lastName>Schmitt</lastName> <birthday>1977-01-12</birthday> <email>a.schmit@kate-group.com</email> </Partner> </body> </urn:POST> Parsed URI Path, Method, Query Parameters Http headers (we‘re interested in sample header) POST data (body)
  • 17. RESTful Adapter – Design Coventions And how would the response look like?
  • 18. RESTful Adapter – Design Coventions Our example response as PI response message: <urn:POST_Response xmlns:urn="urn:my:resource"> <httpStatusCode>201</httpStatusCode> <headers> <location> http://myHost:50000/ROAWeb/Resources/Partner/1 </location> </headers> </urn:POST> HTTP Status: 201 Created Http headers (e.g.: here Location!) *) You might wonder about the origin of the Location header, this will be a few slides on ;)
  • 19. RESTful Adapter – Design Coventions Our example response as http call: HTTP/1.1 201 Created HTTP Status: 201 Created …. Content-Type: application/xml; charset=utf-8 Location: http://myhost:50000/ROAWeb/Resources/Partner/1 Http headers (e.g.: Location!)
  • 20. RESTful Adapter – Design Coventions Now wasn‘t that simple? 
  • 21. RESTful Adapter – Design Coventions Now wasn‘t that simple?  By that convention you set/access in a mapping:  any path or resource id information (pre parsed)  any query parameter  any header parameter  any http status code (or reason)  any body (payload) – raw or as XML*
  • 22. RESTful Adapter – Design Coventions You might now just go and try the call with the API Console  As any call modeled by with this convention is exporable through the API Console Just go here* on your PI Install: http://<yourPIHost>:50000/ROAWeb/Administration *(/ROAWeb is the base path of the adaper)
  • 23. RESTful Adapter – Design Coventions The API Console enables you to:  Invoke RESTful Services (with XML & JSON)  Displays query/header parameters or the schema  Generates sample calls for PUT/POST requests
  • 24. RESTful Adapter – Design Coventions The API Console (for our POST Request) Send Payload Generate Sample Request Display Schema XML / JSON Display result
  • 25. RESTful Adapter – Design Coventions Wait....but how did we create a current location header?
  • 26. RESTful Adapter – Design Coventions Wait....but how did we create a current location header?  The adapter comes with a mapping lib to construct relative & absolute links in the context of a call easily*  The functions take your resource ID and returns the current URI path + ID similar like Java REST frameworks (e.g. Jersey)  (e.g. Supply „1“ turns into http://myhost:50000/.../Partner/1 ) *)Note! This feature is restricted to certain SP Levels (see SAP Note ) . However we have a workaround for older versions ;)))
  • 27. RESTful Adapter – Design Coventions And dynamic resource uri‘s by calling a RESTful servcie?
  • 28. RESTful Adapter – Design Coventions And dynamic resource uri‘s by calling a RESTful servcie?  As in previous example stated anything can be set  Dynamic (in a Message Mapping)  Static (in a Channel Configuration)  Or both combined  URLs, URIs, Resource Ids, Host, Port, etc...
  • 29. RESTful Adapter - Resources How are different calls to a resource grouped in an PI interface?
  • 30. RESTful Adapter - Resources How are different calls to a resource grouped in an PI interface? 3 different ways to do it, group by:  1 Interface per resource (e.g. Simple CRUD) that responds to all HTTP Methods on this resource („Method oriented“)  1 Interface hosts several resources and responds to all HTTP Methods below one base path („API oriented“)  Generic: Just receive anything below one base path („Generic“)
  • 31. RESTful Adapter - Resources How are different calls to a resource grouped in an PI interface? E.g. Our example Partner resource with CRUD methods /<baseURI>/Partner Bound by channel Service Interface: Partner Operations: POST (Request/Response) GET (Request/Response) PUT (Request/Response) DELETE (Request/Response/Fault*) *) Faults are not mandatory but usable if needed to cover fault replies from receiver adapters
  • 32. RESTful Adapter – Errors & HTTP Status And how about PI faults & system errors?
  • 33. RESTful Adapter – Erros & HTTP Status And how about PI faults & system errors? Few facts first:  RESTful HTTP Status treatment and PI internal Success/Errorhandling differs!  PI: Response(happy Path), (defined) Faults & System Erros on Transport  RESTful: Plain HTTP Status Code
  • 34. RESTful Adapter – Erros & HTTP Status And how about PI faults & system errors? The adapter closes this gap by:  Enable you to return any http status in published Services from regular response or fault messages (System Errors default to 500, but could be overriden)  Enable you to receive any http status for inspection / usage as regular response message from a receiver channel (or by your choice as fault or system error)
  • 35. RESTful Adapter - JSON And how about JSON ?
  • 36. RESTful Adapter - JSON And how about JSON ?  Any JSON input or output is available as XML internally in PI  The next few examples show the 2 different ways to do it to:  Work XML „centric“ or  Work JSON „centric“
  • 37. RESTful Adapter - Basics .. JSON „XML centric“ example! { JSON "tns:company": { "@xmlns:tns": “urn:my:comp", "name": "My Company", "address": { "city": "München", "zipCode": "83503", "houseNumber": "93a", "country": “DE" } } } XML <?xml version="1.0" encoding="UTF-8"?> <tns:company xmlns:tns=“urn:my:comp"> <name>My Company</name> <address> <city>München</city> <zipCode>83503</zipCode> <houseNumber>93a</houseNumber> <country>DE</country> </address> </tns:company> This is forth & backward compatible!
  • 38. RESTful Adapter - Basics .. JSON „JSON centric“ example! JSON [ "1", "2„, 3 ] XML <?xml version="1.0" encoding="UTF-8"?> <a class="array"> <e type="string">1</e> <e type="string">2</e> <e type="number">3</e> </a> This is forth & backward compatible!
  • 39. RESTful Adapter - Operations And how about operations & monitoring?
  • 40. RESTful Adapter - Operations And how about operations & monitoring?  Channels can adjust log levels to show http information  None, only headers or all (see below) Method & URI Headers Payload
  • 41. RESTAdapter - Security What Security standards are supported?     Basic Authentication NTLM 1.x/2.x SSL Client Certificate oAuth1 / 2
  • 42. RESTAdapter - Misc What about other misc HTTP topics?
  • 43. RESTAdapter - Misc What about other misc HTTP topics? E.g.:  Posting and receiving Form Posts – fully supported  Fits often as more „natural“ choice  Post File Uploads – fully supported as multipart request  Imagine posting a form with documents to start a Process?
  • 44. RESTful Adapter - Samples And what Samples do we provide „out of the box“?
  • 45. RESTful Adapter - Samples And what Samples do we provide „out of the box“? Samples for publishing RESTful Example Services:  Publish REST Service in XML/JSON from relational Database (GET/PUT/POST/DELETE, JSON, Location Headers)  REST Form POST Request
  • 46. RESTful Adapter - Samples And what Samples do we provide „out of the box“? Samples how to invoke RESTful Sample Services:  Call Twilio SMS API (JSON, Form Post, AuthToken)  Call LinkedIn API (oAuth1, JSON/XML)  Call Salesforce API (oAuth2, JSON/XML, PATCH Method)
  • 47. RESTful Adapter Interested in our SAP Certified offer? We are pleased to hear your feedback 30 Day trial of the adapter available!
  • 48. RESTful Adapter Interested in our SAP Certified offer? Contact us at :     WWW: http:www//kate-group.com/ T +49 711 90 79 64 65 F +49 711 90 79 64 66 E info@kate-group.com

Notas del editor

  1. The adapter comes with a mapping lib function. This function simplifies the construction of links of resources The function takes ID argument and produces a relative OR absolute Link (similar like frameworks like Jersey)*
  2. RESTful HTTP Status treatment &amp; internal PI Messaging Success/Errorhandlng differs! PI: Response (Happy Path!), Faults &amp; System Errors RESTful: HTTP Status Code The adapter closes this gap by enabling Invoked calls in receiver channels as regular response, fault or system error by error code. Return any http status codes in published RESTful services by regular response mappings or faults
  3. RESTful HTTP Status treatment &amp; internal PI Messaging Success/Errorhandlng differs! PI: Response (Happy Path!), Faults &amp; System Errors RESTful: HTTP Status Code The adapter closes this gap by enabling Invoked calls in receiver channels as regular response, fault or system error by error code. Return any http status codes in published RESTful services by regular response mappings or faults