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

50 %
50 %
Information about [Webinar] An Hour with the CTO: All About APIs and the Nuxeo Platform

Published on February 19, 2014

Author: nuxeo

Source: slideshare.net


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.

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)


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


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 ?

Add a comment

Related presentations

Presentación que realice en el Evento Nacional de Gobierno Abierto, realizado los ...

In this presentation we will describe our experience developing with a highly dyna...

Presentation to the LITA Forum 7th November 2014 Albuquerque, NM

Un recorrido por los cambios que nos generará el wearabletech en el futuro

Um paralelo entre as novidades & mercado em Wearable Computing e Tecnologias Assis...

Microsoft finally joins the smartwatch and fitness tracker game by introducing the...

Related pages

Events - Nuxeo

Nuxeo offers a range of both online and in-person events to help you get familiar with the Nuxeo Platform, ... Our CTO, Thierry Delprat ... APIs, Big Data ...
Read more

About Us - Nuxeo - Nuxeo: Platform for Rich Content Management

About Us - Nuxeo helps organizations build innovative ... out of the Platform and our ... environment that covers all phases ...
Read more

Open Source, Open APIs, Open Networking - Home - VMware ...

... Open Interfaces, and Open Networking. ... cloud management platform, OpenStack. Southbound APIs ... one-size-fits-all southbound control API, ...
Read more

Mark Russinovich | Blog | Microsoft Azure

What is Azure Learn the basics about Microsoft's cloud platform; ... all of which are increasing in significance as cloud ... Mark Russinovich CTO ...
Read more

Nuxeo API: Architecture and Best Practices - DZone Integration

The Nuxeo Platform is designed from the ground up to be highly configurable, extensible and applicable for use as an application platform. Our API is a key ...
Read more

Home - DevNetwork

All News; API News; Data Dev ... Over 500 designers and developers participate in our hackathons each ... DevNetwork is returning to NYC with CTO Talks: ...
Read more

VMware and Docker – Better Together - VMware | CTO Blog

VMware and Docker – Better Together . ... Our session, “SDDC3350 ... (getting all of the security, ...
Read more

API Management | Predictive Analytics | Apigee

... and scale your APIs with the Apigee Edge API management platform. Learn More. ... Greg Goff, CTO. Morningstar ... © 2016 Apigee Corp. All rights ...
Read more

Containers: Docker, Windows and Trends | Blog | Microsoft ...

... this was an opportunity to benefit all of our ... The amount of shared data and APIs means that ... our own microservices application platform.
Read more

Application programming interface - Wikipedia, the free ...

In computer programming, an application programming interface (API) is a set of routines, protocols, and tools for building software and applications.
Read more