18
DomDisc An Open Source Android app that replicates with Domino discussion databases (Primarily) a presentation on the Domino DataService API By Jens Bruntt – [email protected] http://www.convergens.dk Or http://www.jens.bruntt.dk 16/5-2013

DomDisc and the Domino data api

Embed Size (px)

Citation preview

Page 1: DomDisc and the Domino data api

DomDiscAn Open Source Android app that

replicateswith Domino discussion databases

(Primarily) a presentation on the Domino DataService API

By Jens Bruntt – [email protected]://www.convergens.dk

Orhttp://www.jens.bruntt.dk

16/5-2013

Page 2: DomDisc and the Domino data api

Purpose of the DomDisc App

● Mobility by– Accessing one or multiple standard Notes

discussion databases on a Smartphone (or tablet)

– Having offline capability

– Having Create option

– Synchronizing in the background

Page 3: DomDisc and the Domino data api

Screen dumps from app

Page 4: DomDisc and the Domino data api

Installation of the DomDisc app

https://play.google.com/store/apps/details?id=org.openntf.domdisc

Or scan this:

Page 5: DomDisc and the Domino data api

Working with the Domino Data Service API

Page 6: DomDisc and the Domino data api

Domino Data Service API

● What is it?● A REST-api for IBM Domino

– PUT, POST, DEL

– JSON in and out from the service

● Lets you access and work with Notes (Documents) in NSFs hosted on Domino

Page 7: DomDisc and the Domino data api

Reading documents1/3 the full list of notes in the db

Sample urlhttp://dev.openntf.org/demos/domdiscdemo.nsf/api/data/documents/Returns small entries – not full notes

Page 8: DomDisc and the Domino data api

Reading documents 2/3

● We now have a complete list of document-references. With minimal data:– Modified date/time

– Unid

– href

● If we need the full note we can visit the href

Page 9: DomDisc and the Domino data api

Reading documents 3/3The full note

Page 10: DomDisc and the Domino data api

Next time we need to replicate basic workflow - server-to-app

● Read the same start-URL (all notes in small format) for an updated list

● Pseudo code for each UNID in the list● Have we saved this UNID before?

– Yes: Check if @modified local<> server value● Yes: get the update note and update local storage● No: ignore

– No: Get the note and save in local storage

Page 11: DomDisc and the Domino data api

Authentication with Domino

Page 12: DomDisc and the Domino data api

Getting an authentication token from Domino with SSO configuration

● POST a form that has the same content as the one seen here ->

● Response from server:– Set-Cookie: DominoAuthSessID=xyz

or– Set-Cookie: LtpaToken=abc

● Copy this value. Insert it in the HTTP header for all your GETs, POSTs

● Bob is your uncle. Domino accepts your requests - you are logged in

Page 13: DomDisc and the Domino data api

What happens when you click Log in

Page 14: DomDisc and the Domino data api

Code walkthru

Page 15: DomDisc and the Domino data api

More information

Page 16: DomDisc and the Domino data api

Test the app with openntf.org

Parameters to put in the app● Host name: dev.openntf.org● Path to database:

/demos/domdiscdemo.nsf● Username for login: your

openntf.org name● Password: your openntf.org

password● Use SSL: no● Http Port: 80

Check in browser● http://dev.openntf.org/demos/domdiscdemo.nsf

Install ->

Page 17: DomDisc and the Domino data api

Getting the app code

● Code is available from– Openntf.org

– https://github.com/OpenNTF/DomDIsc

● Apache License 2.0 which means:– You can copy and use the code

● Must link to the source of the code● Can create closed-source code from the source

Page 18: DomDisc and the Domino data api

Working with the Domino Data Service API and other technologies

used in the app

● There are pointers - links in the app source: github.com developer.txt on these subjects– Accessing Domino Data Service

– Using SPRING Rest template

– Using ActionBar Sherlock - lets you have the action bar design pattern on older Android devices

– Including libraries in Android