SlideShare ist ein Scribd-Unternehmen logo
1 von 11
Downloaden Sie, um offline zu lesen
RESTx: Rest for the rest of us


                  Ken Yagen
    Silicon Valley Code Camp, October, 2010
Agenda


• The Programmable Web
• What is RESTx?
• Demo
• Building a simple component
• Roadmap
• Questions / More information
The Programmable Web


• Resources
   •   Must have a URI
• Addressability
   –   Name them using URIs
   –   Give them structure - http://www.restxdemo.org/resource/sales/2004/Q4
• Representations
   –   Resources support different representations (XML, JSON, HTML, SVG, …)
• Uniform Interface
   –   HTTP (GET, HEAD, PUT, DELETE, POST)
• Statelessness, Connectedness
• Building Blocks (HTTP, URI, XML, JSON)
Examples of RESTful services


http://www.foo.com/sales/2010
http://www.foo.com/sales/2010/q3
http://www.foo.com/weather/sanfrancisco/current
http://www.foo.com/weather/sanfrancisco/tomorrow
http://www.foo.com/rankings/college/football/bcs
http://www.foo.com/rankings/college/football/bcs?school=stanford
 http://www.foo.com/search?query=restx




All contents Copyright © 2009, MuleSoft Inc.
What is RESTx?


• The simplest way to create RESTful web services
   •   Encourages and enables RESTful concepts
   •   Hides underlying implementation details
   •   RESTx resources are self documenting and discoverable
• RESTx is a server, not a framework
• Use Cases
   •   Create rich data services by integrating different data sources
   •   Customized resources from cloud services and internal databases
   •   Data Layer for JavaScript application
   •   Wrap legacy scripts into reusable components
What is RESTx?




All contents Copyright © 2009, MuleSoft Inc.   6
First a Demo




All contents Copyright © 2009, MuleSoft Inc.
Building a simple component


• Create Component
        ./restxctl component create MyTestComponent [ java | python | javascript ]

• Annotate It
        @ComponentInfo(name = "SomeSampleComponent",
                       description = "One line description of the component",
                       doc               = "Longer description text, possibly multi-line, goes here“)
• Implement service method
• Compile it (Java only)
        ./restxctl component compile

• Start Server
        ./restxctl start




All contents Copyright © 2009, MuleSoft Inc.
Roadmap


• http://www.restx.org/restx-roadmap.html
• Highlights
        •    Pipelines
        •    Ruby, Groovy, PHP Support
        •    iBeans Support
        •    Version Control, Caching




All contents Copyright © 2009, MuleSoft Inc.
Why RESTx?


• Publishing Data as RESTful resources
        •    Any piece of interesting data can be a resource

        •    Users can construct their own resources

        •    Resources are accessible from an web URL

• Self-documenting and browse-able APIs are powerful

• Accessible for less-skilled developers, different language skills
        •    Java, Python, JavaScript

• Makes it easier to develop web 2.0 and mobile apps that require
  access to external resources



All contents Copyright © 2009, MuleSoft Inc.                          10
More Information


Website: http://www.restx.org
Download: http://www.restx.org/quick-start-guide.html
Source Code: git clone git://github.com/mulesoft/RESTx.git
Online Demo: http://restxdemo.mulesoft.org/static/demo/start.html
Blog: http://blogs.mulesoft.org
Forums: http://www.restx.org/community.html
My Email: ken.yagen@mulesoft.com


                                               Questions?



All contents Copyright © 2009, MuleSoft Inc.

Weitere ähnliche Inhalte

Was ist angesagt?

Microservices oracle-meetup
Microservices oracle-meetupMicroservices oracle-meetup
Microservices oracle-meetupNitu Parimi
 
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...MuleSoft
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryVMware Tanzu
 
5 ways to use node.js in the network
5 ways to use node.js in the network5 ways to use node.js in the network
5 ways to use node.js in the networkLori MacVittie
 
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyFrom Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyVMware Tanzu
 
[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven WorldWSO2
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API ManagementWSO2
 
MuleSoft for Enterprises
MuleSoft for EnterprisesMuleSoft for Enterprises
MuleSoft for EnterprisesPrashantGolani1
 
APIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected EnterpriseAPIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected EnterpriseAxway
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)WSO2
 
Vanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptVanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptRajnish Kumar
 
[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Chicago 2019] Cloud-native Integration for the EnterpriseWSO2
 
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...apidays
 
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationKasun Indrasiri
 
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...apidays
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationMuleSoft
 
[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Dallas 2019] Cloud-native Integration for the EnterpriseWSO2
 

Was ist angesagt? (20)

Mule soft
Mule softMule soft
Mule soft
 
Microservices oracle-meetup
Microservices oracle-meetupMicroservices oracle-meetup
Microservices oracle-meetup
 
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...
The Future of B2B: Applying API-Led Connectivity to B2B/EDI - Eric Rempel, CI...
 
MongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud FoundryMongoDB-as-a-Service on Pivotal Cloud Foundry
MongoDB-as-a-Service on Pivotal Cloud Foundry
 
5 ways to use node.js in the network
5 ways to use node.js in the network5 ways to use node.js in the network
5 ways to use node.js in the network
 
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance CompanyFrom Commit to Production in 10 Minutes… at a Century Old Insurance Company
From Commit to Production in 10 Minutes… at a Century Old Insurance Company
 
[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World[WSO2 API Day Dallas 2019] API-Driven World
[WSO2 API Day Dallas 2019] API-Driven World
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
MuleSoft for Enterprises
MuleSoft for EnterprisesMuleSoft for Enterprises
MuleSoft for Enterprises
 
APIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected EnterpriseAPIs at Scale - The Hyperconnected Enterprise
APIs at Scale - The Hyperconnected Enterprise
 
Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)Event-Driven Architecture (EDA)
Event-Driven Architecture (EDA)
 
Vanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect pptVanrish Mulesoft Integration architect ppt
Vanrish Mulesoft Integration architect ppt
 
[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Chicago 2019] Cloud-native Integration for the Enterprise
 
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
 
Case Study Telefonica
Case Study TelefonicaCase Study Telefonica
Case Study Telefonica
 
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
Comcast Codebig: An API Platform & Program [my speech at the AADI conference]
 
The Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital TransformationThe Role of Enterprise Integration in Digital Transformation
The Role of Enterprise Integration in Digital Transformation
 
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...
apidays LIVE Jakarta - API Sandbox: empowering Developer Experience (DX) by F...
 
How API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy ModernizationHow API Enablement Drives Legacy Modernization
How API Enablement Drives Legacy Modernization
 
[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise
[WSO2 API Day Dallas 2019] Cloud-native Integration for the Enterprise
 

Ähnlich wie 2010 code camp rest for the rest of us

Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersBrian Huff
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API LanguagesRestlet
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatSpiffy
 
Media mosa architecture - features -10 june 2010
Media mosa   architecture - features -10 june 2010Media mosa   architecture - features -10 june 2010
Media mosa architecture - features -10 june 2010Andrii Podanenko
 
Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)rivetlogic
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsSkills Matter
 
Integrating Alfresco with Portals
Integrating Alfresco with PortalsIntegrating Alfresco with Portals
Integrating Alfresco with PortalsPiergiorgio Lucidi
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
Build Modern Web Apps Using ASP.NET Web API and AngularJS
Build Modern Web Apps Using ASP.NET Web API and AngularJSBuild Modern Web Apps Using ASP.NET Web API and AngularJS
Build Modern Web Apps Using ASP.NET Web API and AngularJSTaiseer Joudeh
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setupsnopteck
 
Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Will Abson
 
PLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring SurfPLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring SurfAlfresco Software
 
Serverless Pune meetup 3
Serverless Pune meetup 3Serverless Pune meetup 3
Serverless Pune meetup 3Vishal Biyani
 
Introducing apache pivot 2010 06-11
Introducing apache pivot 2010 06-11Introducing apache pivot 2010 06-11
Introducing apache pivot 2010 06-11ConchiLebron
 
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...Rob Tweed
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explainedphrearch
 
How To Implement a CMS
How To Implement a CMSHow To Implement a CMS
How To Implement a CMSJonathan Smith
 
MediaMosa architecture & features
MediaMosa architecture & features MediaMosa architecture & features
MediaMosa architecture & features MediaMosa
 
Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentationTim Taplin
 

Ähnlich wie 2010 code camp rest for the rest of us (20)

Top 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud DevelopersTop 10 HTML5 Features for Oracle Cloud Developers
Top 10 HTML5 Features for Oracle Cloud Developers
 
APIdays 2016 - The State of Web API Languages
APIdays 2016  - The State of Web API LanguagesAPIdays 2016  - The State of Web API Languages
APIdays 2016 - The State of Web API Languages
 
MS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for ThatMS TechDays 2011 - WCF Web APis There's a URI for That
MS TechDays 2011 - WCF Web APis There's a URI for That
 
Media mosa architecture - features -10 june 2010
Media mosa   architecture - features -10 june 2010Media mosa   architecture - features -10 june 2010
Media mosa architecture - features -10 june 2010
 
Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)Introduction to Portlets using Liferay Portal (Part 2)
Introduction to Portlets using Liferay Portal (Part 2)
 
Peter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-appsPeter lubbers-html5-offline-web-apps
Peter lubbers-html5-offline-web-apps
 
Integrating Alfresco with Portals
Integrating Alfresco with PortalsIntegrating Alfresco with Portals
Integrating Alfresco with Portals
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
Build Modern Web Apps Using ASP.NET Web API and AngularJS
Build Modern Web Apps Using ASP.NET Web API and AngularJSBuild Modern Web Apps Using ASP.NET Web API and AngularJS
Build Modern Web Apps Using ASP.NET Web API and AngularJS
 
01 overview-and-setup
01 overview-and-setup01 overview-and-setup
01 overview-and-setup
 
Extending Alfresco Share 3.3
Extending Alfresco Share 3.3Extending Alfresco Share 3.3
Extending Alfresco Share 3.3
 
Web Services
Web ServicesWeb Services
Web Services
 
PLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring SurfPLAT-8 Spring Web Scripts and Spring Surf
PLAT-8 Spring Web Scripts and Spring Surf
 
Serverless Pune meetup 3
Serverless Pune meetup 3Serverless Pune meetup 3
Serverless Pune meetup 3
 
Introducing apache pivot 2010 06-11
Introducing apache pivot 2010 06-11Introducing apache pivot 2010 06-11
Introducing apache pivot 2010 06-11
 
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
EWD 3 Training Course Part 1: How Node.js Integrates With Global Storage Data...
 
HWIOS Websocket CMS explained
HWIOS Websocket CMS explainedHWIOS Websocket CMS explained
HWIOS Websocket CMS explained
 
How To Implement a CMS
How To Implement a CMSHow To Implement a CMS
How To Implement a CMS
 
MediaMosa architecture & features
MediaMosa architecture & features MediaMosa architecture & features
MediaMosa architecture & features
 
Intro to Perfect - LA presentation
Intro to Perfect - LA presentationIntro to Perfect - LA presentation
Intro to Perfect - LA presentation
 

2010 code camp rest for the rest of us

  • 1. RESTx: Rest for the rest of us Ken Yagen Silicon Valley Code Camp, October, 2010
  • 2. Agenda • The Programmable Web • What is RESTx? • Demo • Building a simple component • Roadmap • Questions / More information
  • 3. The Programmable Web • Resources • Must have a URI • Addressability – Name them using URIs – Give them structure - http://www.restxdemo.org/resource/sales/2004/Q4 • Representations – Resources support different representations (XML, JSON, HTML, SVG, …) • Uniform Interface – HTTP (GET, HEAD, PUT, DELETE, POST) • Statelessness, Connectedness • Building Blocks (HTTP, URI, XML, JSON)
  • 4. Examples of RESTful services http://www.foo.com/sales/2010 http://www.foo.com/sales/2010/q3 http://www.foo.com/weather/sanfrancisco/current http://www.foo.com/weather/sanfrancisco/tomorrow http://www.foo.com/rankings/college/football/bcs http://www.foo.com/rankings/college/football/bcs?school=stanford http://www.foo.com/search?query=restx All contents Copyright © 2009, MuleSoft Inc.
  • 5. What is RESTx? • The simplest way to create RESTful web services • Encourages and enables RESTful concepts • Hides underlying implementation details • RESTx resources are self documenting and discoverable • RESTx is a server, not a framework • Use Cases • Create rich data services by integrating different data sources • Customized resources from cloud services and internal databases • Data Layer for JavaScript application • Wrap legacy scripts into reusable components
  • 6. What is RESTx? All contents Copyright © 2009, MuleSoft Inc. 6
  • 7. First a Demo All contents Copyright © 2009, MuleSoft Inc.
  • 8. Building a simple component • Create Component ./restxctl component create MyTestComponent [ java | python | javascript ] • Annotate It @ComponentInfo(name = "SomeSampleComponent", description = "One line description of the component", doc = "Longer description text, possibly multi-line, goes here“) • Implement service method • Compile it (Java only) ./restxctl component compile • Start Server ./restxctl start All contents Copyright © 2009, MuleSoft Inc.
  • 9. Roadmap • http://www.restx.org/restx-roadmap.html • Highlights • Pipelines • Ruby, Groovy, PHP Support • iBeans Support • Version Control, Caching All contents Copyright © 2009, MuleSoft Inc.
  • 10. Why RESTx? • Publishing Data as RESTful resources • Any piece of interesting data can be a resource • Users can construct their own resources • Resources are accessible from an web URL • Self-documenting and browse-able APIs are powerful • Accessible for less-skilled developers, different language skills • Java, Python, JavaScript • Makes it easier to develop web 2.0 and mobile apps that require access to external resources All contents Copyright © 2009, MuleSoft Inc. 10
  • 11. More Information Website: http://www.restx.org Download: http://www.restx.org/quick-start-guide.html Source Code: git clone git://github.com/mulesoft/RESTx.git Online Demo: http://restxdemo.mulesoft.org/static/demo/start.html Blog: http://blogs.mulesoft.org Forums: http://www.restx.org/community.html My Email: ken.yagen@mulesoft.com Questions? All contents Copyright © 2009, MuleSoft Inc.