Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Use this strategy to select document from the view by key. The view will be searched by the first sorted column.

Allowed method

  • GET
  • POST

Parameters:

  • databaseName(String databaseName): name of the database to read data from, use "server!!path/database.nsf" format; when omitted, current database is used
  • viewName(String viewName): name of the view; mandatory
  • keyVariableName(String keyVariableName): name of the variable name in route to read value from; mandatory
  • formName(String formName): name of the Form used when creating new document via @new

 

Let's assume our database has view called (ByTopic), that contains first sorted column displaying Topic field.

...

Code Block
languagejs
{
 "date_created":"2017-03-11T13:11+00:00",
 "author":"Martin Jinoch",
 "id":"DCEFCAE41C0C9815C12580E0004BD296",
 "topic":"test"
}
POST method
Creating new document

WIth route defined below, you can create new document by POSTing to URL http://server.name/path-to/db.nsf/xsp/.xrest/topics/key/@new

Code Block
languagegroovy
router.POST('topics/key/{keyValue}') {
   strategy(DOCUMENT_FROM_VIEW_BY_KEY) {
      viewName('(ByTopic)')
      keyVariableName('keyValue')
      formName('MainTopic')
   }
   mapJson 'id', json:'id', type:'STRING', isformula:true, formula:'@DocumentUniqueID', readonly:true
   mapJson 'date_created', json:'date_created', type:'DATETIME', isformula:true, formula:'@Created', readonly:true
   mapJson 'topic', json:'topic', type:'STRING'
   mapJson "body", json:'content', type:'MIME'
   mapJson 'categories', json:'categories', type:'ARRAY_OF_STRING', writeonly:true
   mapJson "author", json:'author', type:'STRING', isformula:true, formula:'@Name([CN]; From)', readonly:true
}

 

Content by Label
showLabelsfalse
max50
spacesXRAPI
showSpacefalse
sorttitle
typepage
cqllabel = "strategy" and type = "page" and space = "XRAPI"
labelsstrategy

...