Tue 19 Jan 2021
Fancy tricks with REST API - Part 1
Mon 11 Jan 2021
Wed 6 Jan 2021
REST plus RPC: the right data in the right format, and no more
Getting data from Domino with Exciton Boost
Wed 23 Dec 2020, 11:23 AMTweet
by Ben Langhinrichs
In my last post, Out of Notes revisited with Exciton, I described a current customer's requirements for getting data from Domino with Exciton Boost's REST API, and promised I'd make a couple of videos showing how to accomplish these specific tasks using our Curb Appeal sample db. This first video takes you through the whole process using POSTMAN, a free development and testing tool popular with mobile/web developers who need to send requests and record responses. In it, I will show the URL endpoints, URL parameters, and HTTP headers used to accomplish each task.
Here are the nine tasks, restated slightly to clarify, and with a brief description of what is being demonstrated. (If you would like, you can request an Exciton Boost evaluation license and follow along the steps yourself. I think could provide a Postman collection to work with.) Update: Check out the companion blog post with exact requests and sample code.
Task 1: Get list of accessible views
Returns a JSON array of objects, one for each view that is included, implicitly (all views) or explicitly (specified views), in the Exciton configuration db and marked as discoverable. Exciton is strict about data security, so views may be accessible but not discoverable. Views not included are inaccesible and will return a 404 error.
Task 2: Get view with columns & metadata
Returns a JSON array of objects, one for each document in the view. Each document includes a link to get the document from the documents collection as well as item values for each view column. Note that there are parameters to page through the view if desired.
Task 3: Get filtered view
Returns a JSON array of objects, a subset of the full view filtered by a key match with the first view column. There are alternative ways to filter the view, but this is easiest.
Task 4: Get all items from the document
Returns a JSON object containing each item found on the document, or at least all allowed. Items may be explicitly allowed or disallowed in the configuration database, or all may be allowed by default. Some items such as time/date, author and reader fields, and rich text items will be represented by subobjects. Rich text fields are rendered to high fidelity roundtrippable HTML.
Task 5: Get only selected items
Using an item list via URL or HTTP header, the request determines which items to returns in the JSON object. In addition to actual items, the request may use Notes formula language to create additional items or may use filtering to get subsets of rich text items.
Task 6: Add selected items to view results
Going back to the view, the request can include either additional or replacement items for the view columns using an item list via URL or HTTP header. This allows retrieval of any allowed items with the view results, including rendered rich text items.
Task 7: Get RTItems (as a list, as individual rtitems in JSON, as rendered HTML pages, or rendered HTML fragments)
Explores some of the different ways to retrieve rich text.
Task 8: Get image from rich text (either as an <img> link or as components in a JSON object, either allowing binary retrieval of the image from the server)
Depending on what exactly is needed, different ways to retrieve an image as a link back to the Domino db.
Task 9: Get image data URI
Retrieves an image as an <img> link with the data URI included, so that the entire image is local. The dataimgs parameter shown can be used for any rich text or document retrieval so that the rendered HTML has the images locally available without any requirement for the Domino image to be accessible.
Note: Accurate closed captions will be provided shortly.
Copyright © 2020 Genii Software Ltd.
What has been said: