SlideShare a Scribd company logo
1 of 20
eZ Publish REST v2 calls made easy
Apigee Console & eZ Publish REST
06/06/2013Presenter: Łukasz Serwatka Slide 2
APIGEE console & eZ Publish REST
Presenter
Łukasz Serwatka
Product Management Technical Lead
lukasz.serwatka@ez.no
@lserwatka
 Working with eZ since 1st of March 2005
 Over 10 years of experience with eZ Publish
 Former member of the Engineering team, now in the Product Management
 eZ Publish & Polish PHP Community Member
 Expert in the mobile solutions (mobile applications & mobile strategies)
06/06/2013Presenter: Łukasz Serwatka Slide 3
APIGEE console & eZ Publish REST
Console To-Go
 The Apigee “eZ Publish” API console makes it easy to learn, test, and debug
the eZ Publish REST v2 API with interactive tools and documentation.
06/06/2013Presenter: Łukasz Serwatka Slide 4
APIGEE console & eZ Publish REST
API Providers
06/06/2013Presenter: Łukasz Serwatka Slide 5
APIGEE console & eZ Publish REST
Console To-Go
 Apigee Console To-Go describes the API using the Web Application
Description Language (WADL). By uploading API description to Apigee a new
custom Console can be created that allows to customize the look and feel,
and then embed API Console on your own developer portal.
 Console can display all methods available to developers, organized into the
groups. Developers can browse the methods, reading the descriptions
provided for each method and parameter, and see what information is
required for each request, what authentication mechanisms are supported,
and what parameters are optional or required. More importantly, developers
can use the Console to enter authentication credentials and easily test
requests and see what responses are returned.
06/06/2013Presenter: Łukasz Serwatka Slide 6
APIGEE console & eZ Publish REST
Console To-Go: Name Your Console
 Visit https://apigee.com/togo to setup a new console
06/06/2013Presenter: Łukasz Serwatka Slide 7
APIGEE console & eZ Publish REST
Console To-Go: Set Credentials
06/06/2013Presenter: Łukasz Serwatka Slide 8
APIGEE console & eZ Publish REST
Console To-Go: Describe Your API
06/06/2013Presenter: Łukasz Serwatka Slide 9
APIGEE console & eZ Publish REST
What is WADL?
 The Web Application Description Language (WADL) is an XML-based file
format that provides a machine-readable description of HTTP-based web
APIs. A WADL file defines the "resources" (that is, URIs) that constitute an
API. For each resource, WADL defines one or more "methods" that act on
those resources. With RESTful APIs, a 'method' is a combination of a
resource (URI) and the HTTP verb (most commonly GET, PUT, POST and
DELETE) that acts on the resource. WADL in its simplest form defines create,
read, update and delete actions (sometimes referred to as CRUD operations)
on resources defined by the API.
06/06/2013Presenter: Łukasz Serwatka Slide 10
APIGEE console & eZ Publish REST
Resources
 An example eZ Publish API that defines 3 resources: objects, locations, and
sections.
 http://api.example.com/api/ezp/v2/content/objects
 http://api.example.com/api/ezp/v2/content/locations
 http://api.example.com/api/ezp/v2/content/sections
06/06/2013Presenter: Łukasz Serwatka Slide 11
APIGEE console & eZ Publish REST
Resources
 Application definition
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:apigee="http://api.apigee.com/wadl/2010/07/"
xmlns="http://wadl.dev.java.net/2009/02"
xsi:schemaLocation="http://wadl.dev.java.net/2009/02
http://apigee.com/schemas/wadl-schema.xsd
http://api.apigee.com/wadl/2010/07/
http://apigee.com/schemas/apigee-wadl-extensions.xsd">
<!-- Base defines the domain and base path of the endpoint --
>
<resources base="http://api.demo.ez.no/api/ezp/v2">
</resources>
</application>
06/06/2013Presenter: Łukasz Serwatka Slide 12
APIGEE console & eZ Publish REST
Resources
 Resource definition
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:apigee="http://api.apigee.com/wadl/2010/07/"
xmlns="http://wadl.dev.java.net/2009/02"
xsi:schemaLocation="http://wadl.dev.java.net/2009/02
http://apigee.com/schemas/wadl-schema.xsd
http://api.apigee.com/wadl/2010/07/ http://apigee.com/schemas/apigee-
wadl-extensions.xsd">
<!-- Base defines the domain and base path of the endpoint -->
<resources base="http://api.demo.ez.no/api/ezp/v2">
<!-- A resource with a GET method that requires a template
parameter and a header -->
<resource path="/content/objects/{contentId}">
</resource>
</resources>
</application>
06/06/2013Presenter: Łukasz Serwatka Slide 13
APIGEE console & eZ Publish REST
Resources
 For each resource, developers need a way to create, to read, to update, and
to delete each resource--in other words, a set of methods is required for each
resource.
RESTful APIs usually define a:
 POST method (for creating an article)
 PUT method (for modifying an existing article)
 GET method (for retrieving the article)
 DELETE method (for removing articles)
06/06/2013Presenter: Łukasz Serwatka Slide 14
APIGEE console & eZ Publish REST
Resources
 A single GET method on the /content/objects resource. The method returns a
list of content objects.
<method id="get-content-objects" name="GET"
apigee:displayName="content/objects">
<apigee:tags>
<apigee:tag primary="true">Content Resources</apigee:tag>
</apigee:tags>
<apigee:authentication required="true"/>
<apigee:example url="/content/objects"/>
<doc
apigee:url="http://api.mydomain.com/doc/content/objects">
A GET method that requires a template parameter.
</doc>
</method>
06/06/2013Presenter: Łukasz Serwatka Slide 15
APIGEE console & eZ Publish REST
Resources
 A single method can have a request definition with predefined data
<request>
<representation>
<!-- Set required to true to indicate the content as mandatory in
the Console -->
<apigee:payload required="true">
<!-- Body content. -->
<apigee:content>
<![CDATA[
]]>
</apigee:content>
</apigee:payload>
</representation>
</request>
06/06/2013Presenter: Łukasz Serwatka Slide 16
APIGEE console & eZ Publish REST
Parameters
 Methods can in turn have parameters. Parameters provide additional
granularity over interactions with resources. There are a number of different
ways of working with parameters in WADL.
 One benefit of using the Apigee Console is that it enables developers to
quickly understand which parameters are supported by the API, and how
developers can use parameters to accomplish specific tasks.
06/06/2013Presenter: Łukasz Serwatka Slide 17
APIGEE console & eZ Publish REST
Parameters
 Header parameter example:
<param name="Accept" required="true" type="xsd:string"
style="header"
default="application/vnd.ez.api.Content+json">
<doc>Response format.</doc>
<option value="application/vnd.ez.api.Content+json"
mediaType="application/json"/>
<option value="application/vnd.ez.api.Content+xml"
mediaType="application/xml"/>
</param>
06/06/2013Presenter: Łukasz Serwatka Slide 18
APIGEE console & eZ Publish REST
Parameters
 Template parameter example:
<resource path="/content/objects/{contentId}">
<param name="contentId" required="true" type="xsd:string"
style="template" default="57">
<doc>
eZ Publish Content ID
</doc>
</param>
</resource>
06/06/2013Presenter: Łukasz Serwatka Slide 19
APIGEE console & eZ Publish REST
Parameters
 Query parameter example:
<param name="param1" required="true" type="xsd:string"
style="query" default="12345">
<doc>Parameter description.</doc>
</param>
06/06/2013Presenter: Łukasz Serwatka Slide 20
APIGEE console & eZ Publish REST
Console To-Go

More Related Content

What's hot

Angular tutorial
Angular tutorialAngular tutorial
Angular tutorialRohit Gupta
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzgKristijan Jurković
 
api-platform: the ultimate API platform
api-platform: the ultimate API platformapi-platform: the ultimate API platform
api-platform: the ultimate API platformStefan Adolf
 
RESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTRESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTYakov Fain
 
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...Applitools
 
Integrating consumers IoT devices into Business Workflow
Integrating consumers IoT devices into Business WorkflowIntegrating consumers IoT devices into Business Workflow
Integrating consumers IoT devices into Business WorkflowYakov Fain
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil FrameworkEric ShangKuan
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleApigee | Google Cloud
 
IPaste SDK v.1.0
IPaste SDK v.1.0IPaste SDK v.1.0
IPaste SDK v.1.0xrebyc
 
JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016Tadeu Zagallo
 
Angular%201%20to%20angular%202
Angular%201%20to%20angular%202Angular%201%20to%20angular%202
Angular%201%20to%20angular%202Ran Wahle
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash PlatformアップデートMariko Nishimura
 
AngularJS - dependency injection
AngularJS - dependency injectionAngularJS - dependency injection
AngularJS - dependency injectionAlexe Bogdan
 
Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsStacy London
 
Selendroid - Selenium for Android
Selendroid - Selenium for AndroidSelendroid - Selenium for Android
Selendroid - Selenium for AndroidDominik Dary
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloudAndy Bosch
 

What's hot (20)

Angular tutorial
Angular tutorialAngular tutorial
Angular tutorial
 
Building maintainable app #droidconzg
Building maintainable app #droidconzgBuilding maintainable app #droidconzg
Building maintainable app #droidconzg
 
api-platform: the ultimate API platform
api-platform: the ultimate API platformapi-platform: the ultimate API platform
api-platform: the ultimate API platform
 
RESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoTRESTful services and OAUTH protocol in IoT
RESTful services and OAUTH protocol in IoT
 
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
*Webinar* Learn from the Experts: How to Boost Test Coverage with Automated V...
 
Integrating consumers IoT devices into Business Workflow
Integrating consumers IoT devices into Business WorkflowIntegrating consumers IoT devices into Business Workflow
Integrating consumers IoT devices into Business Workflow
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
 
I Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous CycleI Love APIs 2015: Continuous Integration the Virtuous Cycle
I Love APIs 2015: Continuous Integration the Virtuous Cycle
 
IPaste SDK v.1.0
IPaste SDK v.1.0IPaste SDK v.1.0
IPaste SDK v.1.0
 
JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016JavaScript, React Native and Performance at react-europe 2016
JavaScript, React Native and Performance at react-europe 2016
 
Angular%201%20to%20angular%202
Angular%201%20to%20angular%202Angular%201%20to%20angular%202
Angular%201%20to%20angular%202
 
Flash Platformアップデート
Flash PlatformアップデートFlash Platformアップデート
Flash Platformアップデート
 
Codegnitorppt
CodegnitorpptCodegnitorppt
Codegnitorppt
 
AngularJS - dependency injection
AngularJS - dependency injectionAngularJS - dependency injection
AngularJS - dependency injection
 
Refactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.jsRefactoring Large Web Applications with Backbone.js
Refactoring Large Web Applications with Backbone.js
 
Angular modules in depth
Angular modules in depthAngular modules in depth
Angular modules in depth
 
Selendroid - Selenium for Android
Selendroid - Selenium for AndroidSelendroid - Selenium for Android
Selendroid - Selenium for Android
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
Mean stack Magics
Mean stack MagicsMean stack Magics
Mean stack Magics
 
Andy Bosch - JavaServer Faces in the cloud
Andy Bosch -  JavaServer Faces in the cloudAndy Bosch -  JavaServer Faces in the cloud
Andy Bosch - JavaServer Faces in the cloud
 

Similar to Apigee Console & eZ Publish REST

Unleash the power of HTTP with ASP.NET Web API
Unleash the power of HTTP with ASP.NET Web APIUnleash the power of HTTP with ASP.NET Web API
Unleash the power of HTTP with ASP.NET Web APIFilip W
 
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!Evan Mullins
 
RESTful application with Drupal 8
RESTful application with Drupal 8RESTful application with Drupal 8
RESTful application with Drupal 8Patrick Morin
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
RESTful API-centric Universe
RESTful API-centric UniverseRESTful API-centric Universe
RESTful API-centric UniverseTihomir Opačić
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineAlexander Zamkovyi
 
AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesAngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesRainer Stropek
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and PythonPiXeL16
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?Evan Mullins
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?Jonathan Jalouzot
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation ServerPavel Vlasov
 
Using an API
Using an APIUsing an API
Using an APIAdam Culp
 
RESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 versionRESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 versionBertrand Delacretaz
 
I Love API's 2015 Conference Overview
I Love API's 2015 Conference OverviewI Love API's 2015 Conference Overview
I Love API's 2015 Conference OverviewDennis Khan
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearchprotofy
 
Angular 2 Crash Course
Angular  2 Crash CourseAngular  2 Crash Course
Angular 2 Crash CourseElisha Kramer
 

Similar to Apigee Console & eZ Publish REST (20)

Unleash the power of HTTP with ASP.NET Web API
Unleash the power of HTTP with ASP.NET Web APIUnleash the power of HTTP with ASP.NET Web API
Unleash the power of HTTP with ASP.NET Web API
 
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
WordCamp Raleigh 2016 - WP API, What is it good for? Absolutely Everything!
 
RESTful application with Drupal 8
RESTful application with Drupal 8RESTful application with Drupal 8
RESTful application with Drupal 8
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
RESTful API-centric Universe
RESTful API-centric UniverseRESTful API-centric Universe
RESTful API-centric Universe
 
Deploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App EngineDeploying applications to Cloud with Google App Engine
Deploying applications to Cloud with Google App Engine
 
AngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile ServicesAngularJS with TypeScript and Windows Azure Mobile Services
AngularJS with TypeScript and Windows Azure Mobile Services
 
eZ Publish REST API v2
eZ Publish REST API v2eZ Publish REST API v2
eZ Publish REST API v2
 
E zsc2012 rest-api-v2
E zsc2012 rest-api-v2E zsc2012 rest-api-v2
E zsc2012 rest-api-v2
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
Opensocial
OpensocialOpensocial
Opensocial
 
WordCamp Wilmington 2017 WP-API Why?
WordCamp Wilmington 2017   WP-API Why?WordCamp Wilmington 2017   WP-API Why?
WordCamp Wilmington 2017 WP-API Why?
 
How to use apolloJS on React ?
How to use apolloJS on React ?How to use apolloJS on React ?
How to use apolloJS on React ?
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
Nasdanika Foundation Server
Nasdanika Foundation ServerNasdanika Foundation Server
Nasdanika Foundation Server
 
Using an API
Using an APIUsing an API
Using an API
 
RESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 versionRESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 version
 
I Love API's 2015 Conference Overview
I Love API's 2015 Conference OverviewI Love API's 2015 Conference Overview
I Love API's 2015 Conference Overview
 
Prototyping applications with heroku and elasticsearch
 Prototyping applications with heroku and elasticsearch Prototyping applications with heroku and elasticsearch
Prototyping applications with heroku and elasticsearch
 
Angular 2 Crash Course
Angular  2 Crash CourseAngular  2 Crash Course
Angular 2 Crash Course
 

Recently uploaded

Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
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
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
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.
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
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
 

Apigee Console & eZ Publish REST

  • 1. eZ Publish REST v2 calls made easy Apigee Console & eZ Publish REST
  • 2. 06/06/2013Presenter: Łukasz Serwatka Slide 2 APIGEE console & eZ Publish REST Presenter Łukasz Serwatka Product Management Technical Lead lukasz.serwatka@ez.no @lserwatka  Working with eZ since 1st of March 2005  Over 10 years of experience with eZ Publish  Former member of the Engineering team, now in the Product Management  eZ Publish & Polish PHP Community Member  Expert in the mobile solutions (mobile applications & mobile strategies)
  • 3. 06/06/2013Presenter: Łukasz Serwatka Slide 3 APIGEE console & eZ Publish REST Console To-Go  The Apigee “eZ Publish” API console makes it easy to learn, test, and debug the eZ Publish REST v2 API with interactive tools and documentation.
  • 4. 06/06/2013Presenter: Łukasz Serwatka Slide 4 APIGEE console & eZ Publish REST API Providers
  • 5. 06/06/2013Presenter: Łukasz Serwatka Slide 5 APIGEE console & eZ Publish REST Console To-Go  Apigee Console To-Go describes the API using the Web Application Description Language (WADL). By uploading API description to Apigee a new custom Console can be created that allows to customize the look and feel, and then embed API Console on your own developer portal.  Console can display all methods available to developers, organized into the groups. Developers can browse the methods, reading the descriptions provided for each method and parameter, and see what information is required for each request, what authentication mechanisms are supported, and what parameters are optional or required. More importantly, developers can use the Console to enter authentication credentials and easily test requests and see what responses are returned.
  • 6. 06/06/2013Presenter: Łukasz Serwatka Slide 6 APIGEE console & eZ Publish REST Console To-Go: Name Your Console  Visit https://apigee.com/togo to setup a new console
  • 7. 06/06/2013Presenter: Łukasz Serwatka Slide 7 APIGEE console & eZ Publish REST Console To-Go: Set Credentials
  • 8. 06/06/2013Presenter: Łukasz Serwatka Slide 8 APIGEE console & eZ Publish REST Console To-Go: Describe Your API
  • 9. 06/06/2013Presenter: Łukasz Serwatka Slide 9 APIGEE console & eZ Publish REST What is WADL?  The Web Application Description Language (WADL) is an XML-based file format that provides a machine-readable description of HTTP-based web APIs. A WADL file defines the "resources" (that is, URIs) that constitute an API. For each resource, WADL defines one or more "methods" that act on those resources. With RESTful APIs, a 'method' is a combination of a resource (URI) and the HTTP verb (most commonly GET, PUT, POST and DELETE) that acts on the resource. WADL in its simplest form defines create, read, update and delete actions (sometimes referred to as CRUD operations) on resources defined by the API.
  • 10. 06/06/2013Presenter: Łukasz Serwatka Slide 10 APIGEE console & eZ Publish REST Resources  An example eZ Publish API that defines 3 resources: objects, locations, and sections.  http://api.example.com/api/ezp/v2/content/objects  http://api.example.com/api/ezp/v2/content/locations  http://api.example.com/api/ezp/v2/content/sections
  • 11. 06/06/2013Presenter: Łukasz Serwatka Slide 11 APIGEE console & eZ Publish REST Resources  Application definition <application xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:apigee="http://api.apigee.com/wadl/2010/07/" xmlns="http://wadl.dev.java.net/2009/02" xsi:schemaLocation="http://wadl.dev.java.net/2009/02 http://apigee.com/schemas/wadl-schema.xsd http://api.apigee.com/wadl/2010/07/ http://apigee.com/schemas/apigee-wadl-extensions.xsd"> <!-- Base defines the domain and base path of the endpoint -- > <resources base="http://api.demo.ez.no/api/ezp/v2"> </resources> </application>
  • 12. 06/06/2013Presenter: Łukasz Serwatka Slide 12 APIGEE console & eZ Publish REST Resources  Resource definition <application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:apigee="http://api.apigee.com/wadl/2010/07/" xmlns="http://wadl.dev.java.net/2009/02" xsi:schemaLocation="http://wadl.dev.java.net/2009/02 http://apigee.com/schemas/wadl-schema.xsd http://api.apigee.com/wadl/2010/07/ http://apigee.com/schemas/apigee- wadl-extensions.xsd"> <!-- Base defines the domain and base path of the endpoint --> <resources base="http://api.demo.ez.no/api/ezp/v2"> <!-- A resource with a GET method that requires a template parameter and a header --> <resource path="/content/objects/{contentId}"> </resource> </resources> </application>
  • 13. 06/06/2013Presenter: Łukasz Serwatka Slide 13 APIGEE console & eZ Publish REST Resources  For each resource, developers need a way to create, to read, to update, and to delete each resource--in other words, a set of methods is required for each resource. RESTful APIs usually define a:  POST method (for creating an article)  PUT method (for modifying an existing article)  GET method (for retrieving the article)  DELETE method (for removing articles)
  • 14. 06/06/2013Presenter: Łukasz Serwatka Slide 14 APIGEE console & eZ Publish REST Resources  A single GET method on the /content/objects resource. The method returns a list of content objects. <method id="get-content-objects" name="GET" apigee:displayName="content/objects"> <apigee:tags> <apigee:tag primary="true">Content Resources</apigee:tag> </apigee:tags> <apigee:authentication required="true"/> <apigee:example url="/content/objects"/> <doc apigee:url="http://api.mydomain.com/doc/content/objects"> A GET method that requires a template parameter. </doc> </method>
  • 15. 06/06/2013Presenter: Łukasz Serwatka Slide 15 APIGEE console & eZ Publish REST Resources  A single method can have a request definition with predefined data <request> <representation> <!-- Set required to true to indicate the content as mandatory in the Console --> <apigee:payload required="true"> <!-- Body content. --> <apigee:content> <![CDATA[ ]]> </apigee:content> </apigee:payload> </representation> </request>
  • 16. 06/06/2013Presenter: Łukasz Serwatka Slide 16 APIGEE console & eZ Publish REST Parameters  Methods can in turn have parameters. Parameters provide additional granularity over interactions with resources. There are a number of different ways of working with parameters in WADL.  One benefit of using the Apigee Console is that it enables developers to quickly understand which parameters are supported by the API, and how developers can use parameters to accomplish specific tasks.
  • 17. 06/06/2013Presenter: Łukasz Serwatka Slide 17 APIGEE console & eZ Publish REST Parameters  Header parameter example: <param name="Accept" required="true" type="xsd:string" style="header" default="application/vnd.ez.api.Content+json"> <doc>Response format.</doc> <option value="application/vnd.ez.api.Content+json" mediaType="application/json"/> <option value="application/vnd.ez.api.Content+xml" mediaType="application/xml"/> </param>
  • 18. 06/06/2013Presenter: Łukasz Serwatka Slide 18 APIGEE console & eZ Publish REST Parameters  Template parameter example: <resource path="/content/objects/{contentId}"> <param name="contentId" required="true" type="xsd:string" style="template" default="57"> <doc> eZ Publish Content ID </doc> </param> </resource>
  • 19. 06/06/2013Presenter: Łukasz Serwatka Slide 19 APIGEE console & eZ Publish REST Parameters  Query parameter example: <param name="param1" required="true" type="xsd:string" style="query" default="12345"> <doc>Parameter description.</doc> </param>
  • 20. 06/06/2013Presenter: Łukasz Serwatka Slide 20 APIGEE console & eZ Publish REST Console To-Go