Sitecore Item Web API & Mobile SDK 11 september 2013 Martijn van der Put www.partechit.nl Inhoud • Sitecore Item Web Api • Sitecore Mobile SDK • Demo ParTech Blog Reader App www.partechit.nl Wat is de Sitecore Item Web API • HTTP request • Bewerken van content dmv item path, ID of query • Response in JSON formaat www.partechit.nl Installatie / configuratie • Sitecore 6.5 update 5 of hoger • Web API Package – Sitecore.ItemWebApi.dll – Sitecore.ItemWebApi.config www.partechit.nl Installatie / configuratie (2) Site definitie uitbreiden in sitedefinitions.config http://partech.local//item/v1/sitecore/shell%2Fsitecore%2Fcontent%2Fcorporate%2Fhome%2Fblog%2F2013%2F04% 2Fsitecore%207%20in%2Ddepth%20indexing%20mechanics?scope=s&… www.partechit.nl Installatie / configuratie (3) Sitecore.ItemWebApi.config • Definitie van een nieuw veld in de Security Editor • Default zijn de lees rechten “denied” www.partechit.nl Query string parameters • http://<host_name>/-/item/v1/?<query string params> – – – – – – – – – – sc_itemid= sc_itemversion= sc_database= language= fields= extractblob=1 payload= scope= query= page= / pagezise= www.partechit.nl Mogelijke item bewerkingen • Ophalen van items (HTTP Get) – Op basis van item ID http://<host_name>/-/item/v1/?sc_itemid={A60ACD61-A6DB-4182-8329C957982CEC74} – Query: http://<host_name>/-/item/v1/?query=/sitecore/content/* – item path: http://<host_name>/-/item/v1/sitecore/content/home www.partechit.nl Mogelijke item bewerkingen (2) JSON result www.partechit.nl Mogelijke item bewerkingen (3) Aanmaken nieuwe items • HTTP Post • Querystring parameters: – template – name OF – BranchID http://<host_name>/-/item/v1/sitecore/Content/Home? name=MyItem&template=Sample/Sample Item&sc_database=master www.partechit.nl Mogelijke item bewerkingen (4) Items bewerken • HTTP Put • HTTP Request header: Content-Type=application/x-www-formurlencoded • Url aanmaken nieuwe items uitbreiden – <fieldName1>=<fieldValue1>&<fieldName2>=<fieldValue2>&<fieldNameN>=<fieldValueN> – <fieldID1>=<fieldValue1>&<fieldID2>=<fieldValue2>&<fieldIDN>=<fieldValueN> www.partechit.nl Mogelijke item bewerkingen (5) Item verwijderen • HTTP Delete • Heeft invloed op alle items in de scope • Response toont aantal verwijderde items + ID www.partechit.nl Mogelijke item bewerkingen (6) Media items aanmaken • HTTP Post • HTTP Request header Content-Type=multipart/form-data • Scope wordt niet gebruikt • Context item is parent www.partechit.nl Special requests • GetRenderingHtml - sc_database - renderingId - sc_itemId • http://<host_name>/<webapi_hook>/<special_request_hook>/<action_name >[?<optional_parameters>] • http://<host_name>/-/item/v1//actions/GetRenderingHtml?sc_database=master&language=en &renderingId={493B3A83-0FA7-4484-8FC94680991CF743}&sc_itemid={110D559F-DEA5-42EA-9C1C8A5DF7E70EF9}&a=1&b=2&c=3 www.partechit.nl Uitbreidbaarheid • Item Web Api functies gebruiken pipelines • Pipelines zijn uit te breiden of toe te voegen www.partechit.nl Wanneer te gebruiken • Vanuit andere applicaties content tonen of bewerken • Mobile Apps -> directe aanroep -> via Sitecore Mobile SDK www.partechit.nl Item Web API vs Sitecore Visual Service Item Web Api Visual Service overlap HTTP request SOAP Uitbreidbaarheid door pipelines override of eigen pipelines toevoegen Uitbreidbaarheid door nieuwe webservice* of huidige service overriden Uitgebreidere authorisatie mogelijk Standaard Sitecore authorisatie Sitecore query Item ID www.partechit.nl Sitecore Mobile SDK www.partechit.nl Wat is de Mobile SDK • Framework iOS based applicaties • Server: Item Web Api • Client: SitecoreMobileSDK.framework met Objective-C Api www.partechit.nl Benodigdheden • Sitecore 6.5 (update-5) of later • Sitecore Item Web Api • Sitecore Mobile SDK framework bundle • OS X met Xcode software www.partechit.nl Installatie / Configuratie • Item Web Api • Framework bundle toevoegen • Linken van extra Frameworks • Linken van extra libraries www.partechit.nl 4 soorten apps • Embedded Browser – “inframen” mobiele website variant • Item Web Api – Native objective-C code icm Sitecore Mobile SDK Framework • Hybrid – Combinatie embedded browser en Native objective-C • Custom approach – met eigen Objective-C Api www.partechit.nl Communicatie SDK <> Item Web API www.partechit.nl ParTech Blog Reader app www.partechit.nl Datacontroller www.partechit.nl Code explanation • Ophalen van een lijst met blogItems (titel, datum, introductie, tekst, auteur) • SCApiContext www.partechit.nl Code explanation (2) • SCAsyncOp block request callback www.partechit.nl Code explanation (3) • SCItem object www.partechit.nl Code explanation (4) • Veld uitlezen uit target-item www.partechit.nl Code explanation (5) • Result object vullen www.partechit.nl Code explanation (6) • Item aanmaken www.partechit.nl Code explanation (7) • Item aanmaken en bewerken www.partechit.nl Caching en Request merging • Hergebruik van items indien in de cache • Sitecore query altijd gelezen uit backend • SCItemsReaderRequestIgnoreCache flag • Mergen van requests: aantal calls verminderd www.partechit.nl Andere mogelijkheden Mobile SDK • • • • • Ophalen van paged items Verwijderen van items Uploaden van Media Files Html ophalen van Renderings Analytics integratie www.partechit.nl Korte demo www.partechit.nl Nuttige resources • iOS Developer Library http://developer.apple.com • Sitecore GitHub https://github.com/Sitecore/sitecore-ios-sdk • Alexander Dodatko Developer Sitecore Mobile Team www.partechit.nl Conclusie www.partechit.nl Mail: [email protected] Twitter: @Martijnvdput www.partechit.nl