The main goal of the design is to provide a simple, yet feature rich API. An API that users can understand and use without misconceptions and developers can contribute future enhancements.
This has been achieved by identifying the major objects being present in the LimeSurvey Schema, and are essential to the usage of the application. These Objects are:
Survey | The main object of the application. Surveys to be answered |
Group | An entity containing a set of questions. Belongs to a single Survey |
Question | An entity containing a single question (possibly with subquestions) and belongs to a survey and a group. |
Participant | An individual that will participate in a Survey. For each Survey there is an optional table of participants tokens, that belong to this Survey |
Response | A single reply on all the questions of a Survey |
Language | Each Survey can be implemented in different language. For each language there are properties that define the appearance and verbs of the survey. |
The main actions that are performed on those objects are
Add | Add a new object |
Delete | Delete a single or multiple objects |
Import | Import an object from an external source |
Export | Export object to file |
Get | Return a single or multiple properties of an object |
Set | Change a single or multiple properties of an object |
List | Show a collection of objects |
Activate | Perform an initialization of an object |
In addition to the above basic set of actions, a set of actions that do not fit to these categories have been implemented. These actions are:
activate_survey | Launches a newly created survey |
activate_tokens | Initialise the survey's placeholder where new participant tokens are added |
get_site_settings | Returns application settings |
export_statistics | Returns statistics for completed surveys |
export_timeline | Returns timeline series of survey response submissions |
survey_summary | Returns completion summary for surveys |
The following table describes all implemented functions and provides a guide for future development:
Legend
: Function is implemented
: Function can be implemented in the future
: Function is not supported by this object