The Nuxeo Platform is based on a component architecture and extension points that allow you to extend and customize exposed services. The latest version of the platform (5.8) offers a set of resource-oriented REST APIs to support the development of content-centric applications. Learn what we did to create these new REST APIs and how you can use them in your own applications.
Spend an hour with Nuxeo CTO, Thierry Delprat as he talks specifics of the Nuxeo REST APIs. During this live webinar Thierry will:
Review the solutions used to make the REST APIs extensible and composable,
Discuss the challenges associated with a dynamic API.
When the REST API was designed, it was important to ensure it contained the same flexibility and richness available with the Java APIs. Be sure to join us to see exactly what we did to make this happen.
If you want to get a head-start, download the REST API package from the Nuxeo Marketplace, or read through the Nuxeo REST API documentation.
2. NUXEO PLATFORM
not only a Content Repository
provide tools to build Content Apps
Configuration Studio
API, SDK, Dev tools, Test tools
Packaging and deployment tools
3. BUILD MODERN WEB APPS
Back to the client side
Html 5 / JavaScript
Mobile Apps
Leverage Cloud promises
ECM as a service
Easy scaling
these 2 trends are driving the Roadmap for 5.9.x fastracks
4. API
IS THE MAIN ENTRY POINT
API is a major focus for next FastTrack releases
6. BEING DYNAMIC
Services to expose depends on deployment option
+oklwevc +ovrinevc -eainevc
wrfoSrie cnesoSrie rltoSrie
Contribute custom Services
+yutmuiesevc
mCsoBsnsSrie
Data Structures (users, docs ...) depends on configuration
{
cmo :{.}
omn
..,
dbicr :{.}
ulnoe
..,
csoShm :{.}
utmcea
..,
..
.
}
7. BEING COMPOSABLE
"Pack" several services calls inside the same transaction
udtDc+vldtTs +gnrtPF
paeo
aiaeak
eeaeD
Fetch all required information in one call
aggregate all required info
dcatiue +ascae tss+ul
o trbts
soitd ak
rs
8. AND ALSO
efficiently manage streams
bt[
ye]
=>ei
= vl
Mliat=>pi
utPr = an
manage authentication in an easy and pluggable way
be HTML/JavaScript friendly
nwXLtpeus(
e MHtRqet)
9. HOW WE BUILT THE AUTOMATION API
expose a dynamic http API
10. AUTOMATION REST ENDPOINT
Expose Nuxeo entities as REST resources
Documents, Users, Workflows, Tasks ...
CRUD via GET, PUT, POST, DELETE
GT/ue/p/1pt/fn clr"6a4"{ah<fn>HT/.
E nxoaiv/ah<ot oo=#a8f>pt}/ot TP11
GT/ue/p/1i/fn clr"6a4"{i}/ot HT/.
E nxoaiv/d<ot oo=#a8f>ud<fn> TP11
GT/ue/p/1ue/fn clr"6a4"{srae<fn>HT/.
E nxoaiv/sr<ot oo=#a8f>ueNm}/ot TP11
GT/ue/p/1gop<otclr"6a4"{ruI}/ot HT/.
E nxoaiv/ru/fn oo=#a8f>gopd<fn> TP11
12. AUTOMATION RPC : OPERATIONS ENDPOINT
Coarse grained API on top of Java API
each services can contribute Operations
Expose endpoint for Operations
GET to retrieve definition
POST to execute
16. CONTROL MARSHALING
use header to control what schemas should be sent
XNDcmnPoete dbicr,cmo,fl
-Xouetrpris ulnoe omn ie
fetch the data needed on the client side and nothing more
GT/ue/p/1pt/eal-oanwrsae/STsNt HT/.
E nxoaiv/ahdfutdmi/okpcsW/etoe TP11
<>-Xouetrprisnt,fls/>
bXNDcmnPoete oe ie<b
18. FETCH EXTRA INFO
use R s C n r b t r fetch additional info (Mixins)
e t o t i u o to
urls, breadcrumb info, comments, related documents ...
use header to tell server what info is needed
XNCnetCtgr bedrm
-Xotx-aeoy racub
GT/ue/p/1pt/eal-oanwrsae/STsNt HT/.
E nxoaiv/ahdfutdmi/okpcsW/etoe TP11
XNCnetCtgr bedrm
-Xotx-aeoy racub
23. AUTOMATION CHAINS
Operations have Input / Output and Arguments
Operations can be chained on the service side
one call , one transaction
dc= udtDc
o > paeo
=dc= vldtTs
(o)> aiaeak
=dc= gnrtPF=Bo)>
(o)> eeaeD (lb=
Create new Operations via composition
25. OPERATIONS AND RESOURCES
Bridge Operations and Resource Endpoints
"pipe Operation or Chain" on resource
fthrsuc = fe Oeaino Can
ec eore > ed prto r hi
PS /ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@pBo.oD<f
OT nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>o/lbTPF/
26. OPERATIONS AND EXTENSIONS
Contribute new Operations via Extension Point
Contribute new Adapters via Extension Point
Compose Operations via Workflow
28. API IS MORE POWERFUL, BUT MORE COMPLEX
Data mapping needs to be dynamic
Calling dynamic endpoints is more complex than static API
edon.noe"raeouet,{nu:..,prm:.}
npitivk(cetDcmn" ipt .
aas..)
nxocetDcmn(ah nm,tp)
ue.raeouetpt, ae ye
29. SOLUTION :
Provide introspection
methods and data types
Provide client lib
provides some data mapping
(document, blob)
provides a high level simple API
(createDocument, addComment ...)
does some checks
(validate method definition)
Java, Javascript, Python, Dart, Php, ObjectiveC ...
30. MULE CLOUDHUB EXAMPLE
Leverage Java Lib service wrapper
Plug Mule DataSense with Nuxeo Types introspection
Mule fetches datatypes from Nuxeo
Use invoke like pattern for dynamic Operations
cannot dynamicaly build UI from Automation metadata
33. NEXT STEPS : API
API improvements are part of 5.9.x FastTrack releases
REST EndPoints
RestContributors and changes in marshaling
SDK are in progress
JavaScript
Angular
Dart
iOs
Android
Sample Apps and playground
34. NEXT STEPS : CLOUD
nuxeo.io :
Nuxeo Platform as a Service
Codpoiinn +AI+oln IE
lu rvsoig
P
nie D
Scaling
Elastic Search integration
NoSQL backend