REST and API Management              with              Hiranya Jayathilaka         Product Manager – WSO2 ESB             ...
What is REST?    ●   REpresentational State Transfer    ●   Lightweight, Client­Server architecture    ●   Interactions ar...
Origin and Growth    ●   First introduced by Roy Fielding in his doctoral         dissertation    ●   Developed in paralle...
REST By Example...    ●   Learning Management System for a school    ●   A number of fundamental concepts        ●   Stude...
The Student Resource State    ●   Name    ●   Index number    ●   Age    ●   Date of birth    ●   Contact information    ●...
State Representation ­ XML                 
State Representation ­ JSON                  
Application State    ●   Applications have states        ●   Number of students in the system        ●   Number of associa...
Representational State Transfer    ●   Clients and servers interact with each other by         exchanging         ●   Reso...
RESTful Interactions              
Why HTTP?    ●   Rich vocabulary and powerful tools that are         ideal for representing resource states,         appli...
HTTP Based RESTful Interactions                    
Advantages    ●   Simple and lightweight        ●   Easy to implement        ●   Very little processing at the application...
Notable Deployments    ●   Amazon AWS (Over 90% of the clients are         using the RESTful API)    ●   Google Maps    ● ...
WSO2 ESB    ●   A lightweight, high­performance ESB    ●   Feature rich and standards compliant        ●   SOAP and WS­* s...
Under the Hood    ●   WSO2 ESB is based on a number of well         known Apache projects        ●   Synapse ­ http://syna...
REST Support in Axis2    ●   Axis2 provides a REST binding for each         deployed web service    ●   This enables clien...
REST Support in WSO2 ESB    ●   WSO2 ESB can receive and mediate REST         calls just like any other request    ●   The...
Exposing a SOAP Service via REST                
Sample Proxy Configuration                 
Exposing a REST/POX Service via                  SOAP                    
Sample Proxy Configuration                 
Exercising More Control Over REST    ●   Manipulate REST calls based on        ●   HTTP method        ●   Status code     ...
Accessing HTTP Method               
Examples        
Accessing HTTP Status Codes                  
Examples        
Manipulating HTTP Headers                 
Examples        
REST APIs    ●   An API is similar to a web application hosted on         the ESB    ●   Anchored at a specific URL path (...
Resources    ●   A RESTful resource exposed over HTTP    ●   Similar to a proxy service but focuses on REST    ●   Can be ...
Dispatching Requests to a Resource    ●   URL patterns        ●   Reg­Ex match (/test/*)        ●   Extension match (*.jsp...
APIs and Resources             
Resource Examples             
API Example          
APIs in Action           
API Management Goals    ●   Service provider objectives        ●   Define APIs        ●   Define security requirements and...
Solution Architecture               
WSO2 Product Mapping              
Summary and Recap    ●   REST is a lightweight, client­server architecture for building         distributed systems    ●  ...
Questions?         
Selected Customers             
WSO2 Engagement Model    ●   Quick Start    ●   Development Support    ●   Development Services    ●   Production Support ...
Thank You         
Upcoming SlideShare
Loading in...5
×

REST & API Management with the WSO2 ESB

7,970

Published on

Published in: Technology
0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,970
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
285
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Transcript of "REST & API Management with the WSO2 ESB"

  1. 1. REST and API Management with Hiranya Jayathilaka Product Manager – WSO2 ESB   
  2. 2. What is REST? ● REpresentational State Transfer ● Lightweight, Client­Server architecture ● Interactions are based on the transfer of  resource state representations ● Systems exchange state representations and  perform application state transitions ● Mostly implemented using HTTP but can be  based on other protocols   
  3. 3. Origin and Growth ● First introduced by Roy Fielding in his doctoral  dissertation ● Developed in parallel with HTTP/1.1 ● WWW is the largest known implementation of a  RESTful architecture ● Widely used in modern days as an alternative to  technologies like CORBA and SOAP   
  4. 4. REST By Example... ● Learning Management System for a school ● A number of fundamental concepts ● Student ● Course ● Teacher ● In a RESTful design these concepts are likely to  become the resources managed by the LMS   
  5. 5. The Student Resource State ● Name ● Index number ● Age ● Date of birth ● Contact information ● GPA ● ...   
  6. 6. State Representation ­ XML   
  7. 7. State Representation ­ JSON   
  8. 8. Application State ● Applications have states ● Number of students in the system ● Number of associations between students and  courses ● Number of teachers ● Application state transitions may occur as a  result of a resource state transfer ● Application state can also be represented using  some data format or hyper text references   
  9. 9. Representational State Transfer ● Clients and servers interact with each other by  exchanging  ● Resource state representations ● Application state representations ● Other control information   
  10. 10. RESTful Interactions   
  11. 11. Why HTTP? ● Rich vocabulary and powerful tools that are  ideal for representing resource states,  application states and control data ● Application state – Status code + Links ● Resource state – HTTP entity ● Control data – HTTP method ● CRUD operations map nicely into HTTP  methods   
  12. 12. HTTP Based RESTful Interactions   
  13. 13. Advantages ● Simple and lightweight ● Easy to implement ● Very little processing at the application level ● Small amount of data to pass around ● Support any content type ● Leverage built­in application layer protocol  semantics without reinventing the wheel   
  14. 14. Notable Deployments ● Amazon AWS (Over 90% of the clients are  using the RESTful API) ● Google Maps ● Yahoo! ● eBay ● Sastry Malladi on service orientation ­  http://www.youtube.com/watch?v=O­9osZGXDok   
  15. 15. WSO2 ESB ● A lightweight, high­performance ESB ● Feature rich and standards compliant ● SOAP and WS­* standards ● REST support ● Variety of protocols and message formats ● User friendly and highly extensible ● 100% free and open source with commercial  support   
  16. 16. Under the Hood ● WSO2 ESB is based on a number of well  known Apache projects ● Synapse ­ http://synapse.apache.org ● Axis2­ http://axis.apache.org/axis2/java/core ● Web Services ­ http://ws.apache.org ● REST support of WSO2 ESB stems from the  REST support offered by Axis2   
  17. 17. REST Support in Axis2 ● Axis2 provides a REST binding for each  deployed web service ● This enables clients to invoke any Axis2 service  via REST calls ● GET /services/HelloService/sayHello ● GET /services/MathService/add?a=5&b=10   
  18. 18. REST Support in WSO2 ESB ● WSO2 ESB can receive and mediate REST  calls just like any other request ● The same mediators that work with SOAP can  be used to manipulate REST invocations ● Log, Send, Filter, Switch, XSLT, DBLookup.... ● Additional handles provided by the ESB in the  form of properties ● Easily switch between SOAP and REST   
  19. 19. Exposing a SOAP Service via REST   
  20. 20. Sample Proxy Configuration   
  21. 21. Exposing a REST/POX Service via  SOAP   
  22. 22. Sample Proxy Configuration   
  23. 23. Exercising More Control Over REST ● Manipulate REST calls based on ● HTTP method ● Status code ● Content type ● HTTP headers   
  24. 24. Accessing HTTP Method   
  25. 25. Examples   
  26. 26. Accessing HTTP Status Codes   
  27. 27. Examples   
  28. 28. Manipulating HTTP Headers   
  29. 29. Examples   
  30. 30. REST APIs ● An API is similar to a web application hosted on  the ESB ● Anchored at a specific URL path (context) ● /test ● /dictionary ● /foo/bar ● Can be bound to a specific host and a port ● Contains one or more resources   
  31. 31. Resources ● A RESTful resource exposed over HTTP ● Similar to a proxy service but focuses on REST ● Can be associated with ● A set of HTTP methods – GET only, GET and POST only, All HTTP methods ● A specific content type – application/xml, application/json ● A particular class of clients (user agents)   
  32. 32. Dispatching Requests to a Resource ● URL patterns ● Reg­Ex match (/test/*) ● Extension match (*.jsp) ● Exact match (/test/index.jsp) ● URI templates ● /dictionary/{character}/{word} ● /accounts/{accountId}/{operation}   
  33. 33. APIs and Resources   
  34. 34. Resource Examples   
  35. 35. API Example   
  36. 36. APIs in Action   
  37. 37. API Management Goals ● Service provider objectives ● Define APIs ● Define security requirements and SLAs ● Monitor API usage and SLAs ● Service consumer objectives ● Discover and browse APIs ● Sign up and obtain API keys ● Consume APIs using the obtained keys ● Monitor API usage and SLAs   
  38. 38. Solution Architecture   
  39. 39. WSO2 Product Mapping   
  40. 40. Summary and Recap ● REST is a lightweight, client­server architecture for building  distributed systems ● RESTful designs are concerned with resources, states and  transfer of representational state between systems ● WSO2 ESB provides excellent support for receiving, processing  and intermediating REST (HTTP) calls ● The new API concept is a powerful feature which allows  developers to define REST APIs in the ESB without writing any  additional code ● WSO2 platform is ideally suited for developing comprehensive and  flexible API management solutions based on open standards   
  41. 41. Questions?   
  42. 42. Selected Customers   
  43. 43. WSO2 Engagement Model ● Quick Start ● Development Support ● Development Services ● Production Support ● Turnkey Solutions ● WSO2 Mobile Services Solution ● WSO2 FIX Gateway Solution ● WSO2 SAP Gateway Solution   
  44. 44. Thank You   
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×