54
CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Embed Size (px)

Citation preview

Page 1: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

CON7553

PeopleTools REST Web Services: Everything You Need to Know 

Graham Smith - OXFAM GBPeopleSoft Technical Lead & System Architect

Page 2: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 2

OxfamOxfam is a vibrant global movement of dedicated people fighting poverty

70 years experience in 94 countries

Syria - Helping over 200,000 refugees

Page 3: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

PeopleSoft @ OXFAM• HCM & FSCM Applications

• 4,500+ users in 70+ countries

• Working on 9.2 upgrade to FSCM

Page 4: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Agenda1) What is a web service

2) What is SOAP & REST

3) What is WSDL and WADL

4) What is XML and JSON

6) Configuring PeopleTools for REST

7) What's delivered in a SYS database that works

8) How to Build a REST service

9) Testing tools

10) Security

11) Demo

12) Questions

Page 5: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 5

What is a Web Service?

• Method of communicating between devices over the world wide web

• Characteristics of a web service• Defined interface in machine readable form (WSDL or WADL)

• Conveyed over HTTP/S

• Systems interact using request / response messages (SOAP or REST)

Page 6: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 6

Introduction to REST• Style of doing Web Services

• Defined by Professor Roy Fielding• @ UC Irvine in 2000• Co-founder of Apache HTTP Server• Principal author of HTTP specification

• Emerging as the predominant web API model

• Lighter weight and easier to use compared to SOAP and others

• Available from PeopleTools 8.52

Page 7: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 7

What is SOAP & REST?• Both are used to access Web Services

• One is a protocol (SOAP) with defined specification http://www.w3.org/TR/soap/

• One is an architectural style (REST)

Page 8: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 8

What is SOAP?

Page 9: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 9

What is REST?• REST REpresentational State Transfer

• ARCHITECTURAL STYLE (not a standard)

• Implements standard HTTP operations (GET, POST, PUT, DELETE)

• Used to locate and return the representation of a resource (URI)

• No XML to parse and process (fast)

• Synchronous communication only

• Stateless

• Easier to implement

Page 10: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 10

What is WSDL & WADL?

• WSDL Web Services Description Language• XML to describe SOAP web service

• Can define both SOAP and REST web services (from WSDL 2.0)

• PeopleTools describes SOAP based service

• W3C Recommendation 2007

• WADL Web Application Description Language• XML to describe REST web services

• PeopleTools describes REST services using WADL

• W3C Submission in 2009 by Sun Microsystems

• Limited tooling support

Page 11: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 11

What is XML & JSON?

• XML eXtensible Markup Language

• JSON JavaScript Object Notation

JSON now supported PeopleTools 8.53

Page 12: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 12

Configuring PeopleTools for REST

• Set REST Target Locations in Service Configuration

• Specify optional node name Target URL

Page 13: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 13

Configuring PeopleTools for REST

• Activate ~~Any~~ to Local Routing on GETWADL Service Op

Page 14: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 14

Configuring PeopleTools for REST

• Set default application server in Gateway Setup Properties

• Check and set PeopleTools version (inc. Patch number)

Page 15: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 15

Delivered Example in SYS database

• Service Operation PTLOOKUPXLAT_REST_GET • Returns XLAT values for a given Fieldname.

• Handler App Package PT_IB_LOOKUPREST

From 8.53 this is implemented as REST based service.

An error may occur in the Handler code ifEarlier than 8.53.06

Page 16: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 16

PT_LOOKUPXLAT_REST_GET

http://server/PSIGW/RESTListeningConnector/PTLOOKUPXLAT_REST.v1/XLAT_Lookup/RUNSTATUS?fieldVal=7

Page 17: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 17

REST URI - Uniform Resource Identifier

• Identifies the name of a web resource

http://myserver/orders/data.html

er feufhefherf her hfer fherhferfher

heihfwe ew ew ew ew ew dwe dwedew

dwe ew dewdwe ewwe dew wewedew

weew weewdwe ewwdewdwe ew dew weewewweew dwe

dewdewdewdewewdewdewdewdewdwe

Page 18: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 18

REST URI - Uniform Resource Identifier

• REST operates in a similar way to the WWW

http://myserver/operators

http://myserver/opeators/oprid=VP1

oprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxxoprid xxxxxxxxxxxx

VP1 xxxxxxxxxxxxxx

Page 19: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 19

REST URI – Resource Templates

http://myserver/operators

http://myserver/operator/oprid=VP1

Resource name

Resource name

RESOURCE TEMPLATES

Page 20: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 20

REST URI – Resource Document

http://myserver/operators/oprid=VP1

/operators/oprid={oprid}

TemplateMapping byelement name

Page 21: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 21

How to Build a REST Web Service

1. Create Document

2. Test Document

3. Create Message

4. Create Service

5. Create Handler

6. Create Service Operationa) Resource Template

7. Test Handler

8. Create Routings

9. Test Service Operation

10. Publish Web Service (if WADL is needed)

Using delivered image FSCM 9.2.002.

Page 22: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 22

Message

REST Web Service Components

REST Service

Service Operation

•Resource Definition• URI Template(s)• Document Template

•Response Message (20•Fault Message (400)

Handler (OnRequest)Handler (OnRequest)

Service Operation

•Resource Definition• URI Template(s)• Document Template

•Response Message (200)•Fault Message (400) Response

Document

ResourceDocument

Page 23: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 23

Example REST Service

Return the name and email address of a given operator.

Service = OOW_OPERATOR

Service Operation = OOW_OPERATOR_GET

http://myserver/operator/vp1

Application Designer project OOW_REST Download from http://goo.gl/KUX9F2

Page 24: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 24

1) Documents Definition

• Define hierarchical data structures (logical)

• Map onto physical structures• XML

• JSON

• Database records and fields

• Data types available • PRIMITIVE = string, char, integer, etc • COMPLEX PRIMITIVE = primitive with attributes• COMPOUND = set of one or more primitives• COLLECTION = set of one or more compounds

Page 25: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 25

1) Document Data Types

• ROOT element

• Collection

• Record Compound

• Primitive

• Complex Primitive Compound

Page 26: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 26

1) Documents Needed• Document Template

• Used to retrieve inbound URI parameters

• Cannot contain COMPOUND types

• Supports direct variable substitution

• Request Document/Message • Only required if using POST method

• Response Document• Used to construct return message to client

• Fault Document (optional)• Used to construct return message on error condition

They can be all the same document or different ones

Page 27: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 27

1) Create Document

Page 28: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 28

1) Create Document – RelationalAllows mapping of document elements to PeopleSoft records and fields.

Page 29: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 29

2) Document Tester

Page 30: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 30

2) Document Tester - XML

Page 31: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 31

2) Document Tester - JSON

Page 32: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 32

2) Document Tester - PeopleCode

Page 33: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 33

2) Document Tester – Create XSD

Page 34: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 34

3) Create Message

The DOCUMENT is not enough. A message of type Document must be created.

Page 35: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 35

4) Create Service

Page 36: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 36

5) Create Handler

1. Create an Application Class that implements PS_PT:Integration:IRequestHandler

2. Create document from inbound URI Local Document &oprDoc = &_MSG.GetURIDocument();

3. Get inbound URI element values from document&oprid = &oprDoc.GetElement("oprid").value;

4. If POST then get content body

&str = &_MSG.GetContentString();

Page 37: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 37

5) Create Handler

5. Create return message

&returnMsg = CreateMessage(Operation.OPERATOR_GET, %IntBroker_Response);

6. Populate return message&returnDoc = &returnMsg.GetDocument();

&returnCom = &returnDoc.DocumentElement;

&returnCom.GetPropertyByName("oprid").value = &oprid; &returnCom.GetPropertyByName("oprdefndesc").value = &descr;

Page 38: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 38

5) Use Document Tester to get PeopleCode for Handler class

Page 39: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 39

6) Create Service Operation

Page 40: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 40

6) Resource Definition

Page 41: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 41

REST URI – Resource Document

http://myserver/operators/oprid=VP1

/operators/oprid={oprid}

TemplateMapping byelement name

Page 42: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 42

6) Resource Template Builder

Page 43: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 43

6) Response Definition

Page 44: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 44

6) Service Operation Security

Page 45: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 45

6) Assign Handler to Service Op

Page 46: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 46

7) Test Handler

Page 47: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 47

7) Test Handler

Page 48: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 48

8) Create Routing

Local-to-Local needed to use Service Operation Test utility.Any-to-Local needed to test service outside PeopleSoft.

Page 49: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 49

9) Test Service Operation

Page 50: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 50

10) Publish Web Service

Integration Broker > Web Services > Provide Web Services

Only need to publish if you need the WADL document.

Page 51: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 51

Test Web Service

• SOAPui friom SmartBear• www.soapui.org

• PeopleTools SendMaster • %PS_HOME%\sendmaster

• Any Browser (to test GET)

• Fiddler (to test GET/POST/PUT/DELETE)

Page 52: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 52

REST Security

• PeopleTools supports no authentication (ie public)

• BASIC Authorization with or without SSL• Adds HTTP header to Request

Authorization: BASIC <oprid:password>

Base64

Page 53: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 53

Demonstration of REST

Jim Marion

•Principal Applications Technology Consultant, Oracle•Author of two fine books on PeopleTools•Jim’s Journal @ http://jjmpsj.blogspot.co.uk/

Page 54: CON7553 PeopleTools REST Web Services: Everything You Need to Know Graham Smith - OXFAM GB PeopleSoft Technical Lead & System Architect

Page 54

Any questions

Graham Smith

PeopleSoft Technical Team Leader

Oxfam GB

[email protected]

i-like-trains.blogspot.com