NUXEO PLATFORM
&

API

what is coming in the next releases ?
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
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
API

IS THE MAIN ENTRY POINT
API is a major focus for next FastTrack releases
NUXEO API CHALLENGES
expose Nuxeo Platform via http without losing our soul
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
..,
..
.
}
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
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)
HOW WE BUILT THE AUTOMATION API
expose a dynamic http API
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
REST ENDPOINT : GET DOCUMENT
GT/ue/p/1pt/eal-oanwrsae/STsNt HT/.
E nxoaiv/ahdfutdmi/okpcsW/etoe TP11
HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
{
"niytp" "ouet,
ett-ye: dcmn"
"eoioy:"eal"
rpstr" dfut,
"i" "a98369-5591-781acc,
ud: 639e-804f-c9b08491"
"ah:"dfutdmi/okpcsW/etoe,
pt" /eal-oanwrsae/STsNt"
"ye:"oe,
tp" Nt"
"tt" "rjc"
sae: poet,
"esoLbl:"."
vrinae" 00,
"shceOt:tu,
iCekdu" re
"il" "etoe,
tte: TsNt"
"atoiid:"040-01:12.4"
lsMdfe" 21-12T31:96Z,
..
.
}
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
OPERATIONS ENDPOINT
GT/ue/ieatmto/ouetPgPoie HT/.
E nxost/uoainDcmn.aervdr TP11
HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
i""ouetPgPoie"
d:Dcmn.aervdr,
"ae""aervdr,
lbl:PgPoie"
"ecito""efr aqey..,
dsrpin:Prom
ur ."
"intr"["od,"ouet"]
sgaue: vi" dcmns ,
"aas:
prm"[
{ "ae:pg"
nm""ae,
"ye:itgr,
tp""nee"
"eurd:as
rqie"fle
}{
,
"ae:qey,
nm""ur"
"ye:srn"
tp""tig,
"eurd:as,}
rqie"fle ,
..]
.
}
OPERATIONS ENDPOINT
PS /ue/ieatmto/ouetPgPoie HT/.
OT nxost/uoainDcmn.aervdr TP11
CnetTp:apiainjo+xeus
otn-ye plcto/snnrqet
{"aas :
prm"
{"ur":"eet*fo Nt"
qey
slc
rm oe,
"ae :0
pg"
}
}
HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
{
"niytp" "ouet"
ett-ye: dcmns,
"aene" 0
pgIdx: ,
"aeie:2
pgSz" ,
"aeon" 2
pgCut: ,
"nre" [
etis:
{
"niytp" "ouet,
ett-ye: dcmn"
"eoioy:"eal"
rpstr" dfut,
"i" "f645a7-5295-1a2bf4,
ud: 37a1-d342-40d2f57b"
..
.
} {..,..
,
.} .
]
}
DYNAMIC DATA STRUCTURE
Fetch all needed data in one call
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
CONTROL MARSHALING
GT/ue/p/1pt/eal-oanwrsae/STsNt HT/.
E nxoaiv/ahdfutdmi/okpcsW/etoe TP11
<pnsye"otfml:mnsae"
sa tl=fn-aiy oopc;>
<otclr"6a4"XNDcmnPoete nt,fls/ot
fn oo=#a8f>-Xouetrpris oe ie<fn>
<sa>
/pn

HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
{ "niytp" "ouet,
ett-ye: dcmn"
..
.
<otclr"6a4""rpris:{
fn oo=#a8f>poete"
"oemm_ye:"etxwbmrdw"
nt:ietp" tx/-e-akon,
"oent" "#el"
nt:oe: #Hlo,
"ie:ie" [
flsfls:
{
"ie:{
fl"
"ae:"aotpg,
nm" lyu.n"
"ietp" "mg/n"
mm-ye: iaepg,
"egh:"32"
lnt" 467,
"aa:"ie/a98369-5591-781acc
dt" fls639e-804f-c9b08491"
}}]}../ot
.<fn>
}
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
FETCH REST CONTRIBUTIONS
GT/ue/p/1pt/eal-oanwrsae/STsNt HT/.
E nxoaiv/ahdfutdmi/okpcsW/etoe TP11
<pnsye"otfml:mnsae"
sa tl=fn-aiy oopc;>
<otclr"6a4"XNCnetCtgr bedrm<fn>
fn oo=#a8f>-Xotx-aeoy racub/ot
<sa>
/pn

HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
{
"niytp" "ouet,
ett-ye: dcmn"
..
.
<otclr"6a4" "otxPrmtr" {
fn oo=#a8f> cnetaaees:
"racub:{
bedrm"
"niytp" "ouet"
ett-ye: dcmns,
"nre" [
etis:
{
"niytp" "ouet,
ett-ye: dcmn"
"eoioy:"eal"
rpstr" dfut,
"ah:"dfutdmi"
pt" /eal-oan,
..
.
} ..]}}/ot
, .
<fn>
}
LEVERAGE ADAPTER SYSTEM
contribute custom logic
@eAatrnm =BAatrNM,
Wbdpe(ae
Odpe.AE
tp ="Oevc" treTp ="ouet)
ye
BSrie, agtye
Dcmn"
@rdcs{"plcto/snnett")
Poue( apiainjo+xniy}
pbi casBAatretnsDfutdpe {
ulc ls Odpe xed ealAatr

expose as business object with custom marshaling

GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@ui<fn>HT
E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>adt/ot TP

GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@oMB<fn>H
E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>b/yO/ot T
FETCH AUDIT RECORDS VIA ADAPTER

GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@ui<fn>HT
E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>adt/ot TP

HT/. 20O
TP11 0 K
CnetTp:apiainjo
otn-ye plcto/sn
{
"niytp""fn clr"6a4"lgnre<fn>,
ett-ye:<ot oo=#a8f>oEtis/ot"
..
.
"nre"[
etis:
{
"niytp""fn clr"6a4"lgnr<fn>,
ett-ye:<ot oo=#a8f>oEty/ot"
"rniaNm""dlrt,
picplae:tepa"
"oTp""oe,
dcye:Nt"
"vnI""ouetrae"
eetd:dcmnCetd,
"eoioyd:dfut,
rpstrI""eal"
"vnDt""040-21:85.9+10"
eetae:21-11T65:5240:0,
..
.
}
,
<pnsye"otfml:mnsae"../pn<pnsye"otfml:mnsae"}/
sa tl=fn-aiy oopc;>.<sa>sa tl=fn-aiy oopc;><
COMPOSABLE API
Expose the API that matches your needs
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
COMPOSE CHAIN
via XML / via Drag&Drop
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/
OPERATIONS AND EXTENSIONS
Contribute new Operations via Extension Point
Contribute new Adapters via Extension Point
Compose Operations via Workflow
DYNAMIC AND COMPOSABLE API
Cool, but what is the trade-off
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
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 ...
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
DYNAMIC DATA MAPPING
ROADMAP & NEXT STEPS
when is it ready ?
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
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
Q&A ?

[Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform

  • 1.
    NUXEO PLATFORM & API what iscoming in the next releases ?
  • 2.
    NUXEO PLATFORM not onlya Content Repository provide tools to build Content Apps Configuration Studio API, SDK, Dev tools, Test tools Packaging and deployment tools
  • 3.
    BUILD MODERN WEBAPPS 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 MAINENTRY POINT API is a major focus for next FastTrack releases
  • 5.
    NUXEO API CHALLENGES exposeNuxeo Platform via http without losing our soul
  • 6.
    BEING DYNAMIC Services toexpose 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" severalservices 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 managestreams 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 BUILTTHE AUTOMATION API expose a dynamic http API
  • 10.
    AUTOMATION REST ENDPOINT ExposeNuxeo 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
  • 11.
    REST ENDPOINT :GET DOCUMENT GT/ue/p/1pt/eal-oanwrsae/STsNt HT/. E nxoaiv/ahdfutdmi/okpcsW/etoe TP11 HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn { "niytp" "ouet, ett-ye: dcmn" "eoioy:"eal" rpstr" dfut, "i" "a98369-5591-781acc, ud: 639e-804f-c9b08491" "ah:"dfutdmi/okpcsW/etoe, pt" /eal-oanwrsae/STsNt" "ye:"oe, tp" Nt" "tt" "rjc" sae: poet, "esoLbl:"." vrinae" 00, "shceOt:tu, iCekdu" re "il" "etoe, tte: TsNt" "atoiid:"040-01:12.4" lsMdfe" 21-12T31:96Z, .. . }
  • 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
  • 13.
    OPERATIONS ENDPOINT GT/ue/ieatmto/ouetPgPoie HT/. Enxost/uoainDcmn.aervdr TP11 HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn i""ouetPgPoie" d:Dcmn.aervdr, "ae""aervdr, lbl:PgPoie" "ecito""efr aqey.., dsrpin:Prom ur ." "intr"["od,"ouet"] sgaue: vi" dcmns , "aas: prm"[ { "ae:pg" nm""ae, "ye:itgr, tp""nee" "eurd:as rqie"fle }{ , "ae:qey, nm""ur" "ye:srn" tp""tig, "eurd:as,} rqie"fle , ..] . }
  • 14.
    OPERATIONS ENDPOINT PS /ue/ieatmto/ouetPgPoieHT/. OT nxost/uoainDcmn.aervdr TP11 CnetTp:apiainjo+xeus otn-ye plcto/snnrqet {"aas : prm" {"ur":"eet*fo Nt" qey slc rm oe, "ae :0 pg" } } HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn { "niytp" "ouet" ett-ye: dcmns, "aene" 0 pgIdx: , "aeie:2 pgSz" , "aeon" 2 pgCut: , "nre" [ etis: { "niytp" "ouet, ett-ye: dcmn" "eoioy:"eal" rpstr" dfut, "i" "f645a7-5295-1a2bf4, ud: 37a1-d342-40d2f57b" .. . } {..,.. , .} . ] }
  • 15.
    DYNAMIC DATA STRUCTURE Fetchall needed data in one call
  • 16.
    CONTROL MARSHALING use headerto 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
  • 17.
    CONTROL MARSHALING GT/ue/p/1pt/eal-oanwrsae/STsNt HT/. Enxoaiv/ahdfutdmi/okpcsW/etoe TP11 <pnsye"otfml:mnsae" sa tl=fn-aiy oopc;> <otclr"6a4"XNDcmnPoete nt,fls/ot fn oo=#a8f>-Xouetrpris oe ie<fn> <sa> /pn HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn { "niytp" "ouet, ett-ye: dcmn" .. . <otclr"6a4""rpris:{ fn oo=#a8f>poete" "oemm_ye:"etxwbmrdw" nt:ietp" tx/-e-akon, "oent" "#el" nt:oe: #Hlo, "ie:ie" [ flsfls: { "ie:{ fl" "ae:"aotpg, nm" lyu.n" "ietp" "mg/n" mm-ye: iaepg, "egh:"32" lnt" 467, "aa:"ie/a98369-5591-781acc dt" fls639e-804f-c9b08491" }}]}../ot .<fn> }
  • 18.
    FETCH EXTRA INFO useR 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
  • 19.
    FETCH REST CONTRIBUTIONS GT/ue/p/1pt/eal-oanwrsae/STsNtHT/. E nxoaiv/ahdfutdmi/okpcsW/etoe TP11 <pnsye"otfml:mnsae" sa tl=fn-aiy oopc;> <otclr"6a4"XNCnetCtgr bedrm<fn> fn oo=#a8f>-Xotx-aeoy racub/ot <sa> /pn HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn { "niytp" "ouet, ett-ye: dcmn" .. . <otclr"6a4" "otxPrmtr" { fn oo=#a8f> cnetaaees: "racub:{ bedrm" "niytp" "ouet" ett-ye: dcmns, "nre" [ etis: { "niytp" "ouet, ett-ye: dcmn" "eoioy:"eal" rpstr" dfut, "ah:"dfutdmi" pt" /eal-oan, .. . } ..]}}/ot , . <fn> }
  • 20.
    LEVERAGE ADAPTER SYSTEM contributecustom logic @eAatrnm =BAatrNM, Wbdpe(ae Odpe.AE tp ="Oevc" treTp ="ouet) ye BSrie, agtye Dcmn" @rdcs{"plcto/snnett") Poue( apiainjo+xniy} pbi casBAatretnsDfutdpe { ulc ls Odpe xed ealAatr expose as business object with custom marshaling GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@ui<fn>HT E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>adt/ot TP GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@oMB<fn>H E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>b/yO/ot T
  • 21.
    FETCH AUDIT RECORDSVIA ADAPTER GT/ue/p/1pt/oanwrsae/Snt/fn clr"6a4"@ui<fn>HT E nxoaiv/ahdmi/okpcsW/oe<ot oo=#a8f>adt/ot TP HT/. 20O TP11 0 K CnetTp:apiainjo otn-ye plcto/sn { "niytp""fn clr"6a4"lgnre<fn>, ett-ye:<ot oo=#a8f>oEtis/ot" .. . "nre"[ etis: { "niytp""fn clr"6a4"lgnr<fn>, ett-ye:<ot oo=#a8f>oEty/ot" "rniaNm""dlrt, picplae:tepa" "oTp""oe, dcye:Nt" "vnI""ouetrae" eetd:dcmnCetd, "eoioyd:dfut, rpstrI""eal" "vnDt""040-21:85.9+10" eetae:21-11T65:5240:0, .. . } , <pnsye"otfml:mnsae"../pn<pnsye"otfml:mnsae"}/ sa tl=fn-aiy oopc;>.<sa>sa tl=fn-aiy oopc;><
  • 22.
    COMPOSABLE API Expose theAPI that matches your needs
  • 23.
    AUTOMATION CHAINS Operations haveInput / 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
  • 24.
    COMPOSE CHAIN via XML/ via Drag&Drop
  • 25.
    OPERATIONS AND RESOURCES BridgeOperations 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 Contributenew Operations via Extension Point Contribute new Adapters via Extension Point Compose Operations via Workflow
  • 27.
    DYNAMIC AND COMPOSABLEAPI Cool, but what is the trade-off
  • 28.
    API IS MOREPOWERFUL, 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 methodsand 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 LeverageJava 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
  • 31.
  • 32.
    ROADMAP & NEXTSTEPS when is it ready ?
  • 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
  • 35.