Versions Compared

Key

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


Section


Column

This section describes the basic protocol used to interact with Data frevvo Data APIs including examples of what Atom requests may look like, what kind of responses to expect, and so on. It is intended for anyone wanting an understanding the general idea of the format and protocol used by the Data frevvo Data API and it assumes that you understand the basics of XML, namespaces, Atom feeds, and the main HTTP requests GET, POST, PUT and DELETE, as well as the RESTful concept of a resource. Using the API at this level your client application can interact with the Server frevvo Server using any programming language that lets you issue HTTP requests and consume XML-based responses.

Note

In v9.1 and later frevvo's "Applications" are known as "Projects," and "Themes" are known as "Styles." The API objects and methods still use the words application, 'app', and theme.

There are various different types of resources frevvo resources that can be viewed and manipulated by the Data API. Most of these resources are things that a designer sees when creating new forms and navigating the UIfrevvo UI, for instance users, projects, forms, schemas, etc. So before delving into the API specifics it is a good idea to understand these different types of resources and how they relate to each other.


Column
width240px

On this page:

Table of Contents
maxLevel1



Basically, for each resource type in  in frevvo (User, Project, FormType, Schema) an Atom Feed representation is provided. The following table shows the different URI to access the different resource feeds:

                                                              Data frevvo Data API URLs

Resource Description  Resource URI
UserFeed/frevvo/web/tn/{tenantId}/api/users
UserEntry/frevvo/web/tn/{tenantId}/api/user/{id}
ProjectFeed/frevvo/web/tn/{tenantId}/api/apps?ownerId={userId}
ProjectEntry/frevvo/web/tn/{tenantId}/api/app/{id}
FormTypeFeed/frevvo/web/tn/{tenantId}/api/formtypes?ownerId={appId}
FormTypeEntry/frevvo/web/tn/{tenantId}/api/formtype/{id}
SchemaFeed/frevvo/web/tn/{tenantId}/api/schemas?ownerId={appId}
SchemaEntry/frevvo/web/tn/{tenantId}/api/schema/{id}
ControlTypeFeed/frevvo/web/tn/{tenantId}/api/controltypes?ownerId={formTypeId}
ControlTypeEntry/frevvo/web/tn/{tenantId}/api/controltype/{id}
SubmissionFeed/frevvo/web/tn/{tenantId}/api/submissions
SubmissionEntry/frevvo/web/tn/{tenantId}/api/submission/{id}

...

The user feed represents each user that is visible to the currently logged-in user. For all non-administrator users, this feed will always show one user: the current user; for the administrator users it will show all the users in  allowing frevvo allowing them to manage user settings.

...

In order to get a list of all visible users, send the following request to the  Serverfrevvo Server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/users

...

Note

Note that since the current logged-in user is johndoe the feed contains only his entry. If the currenty currently logged-in user was the administrator then a full list of all users would be returned by the server. Also note that user feeds are read-only, and so new users cannot be created using the Data API.

...

In order to get a list of all styles, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/themes

...

The returned feed above shows two style entries named Clear and Blue Professional (, which are the two global styles provided by default by the  version the frevvo version when this example was created.  currently  frevvo currently offers additional Global Styles.

...

In order to get a list of all projects, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/apps

...

In order to get a list of all forms owned by the current user, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/formtypes

...

The schema feed represents each XML Schema visible to the current logged-in user.

The schema feed lists all uploaded schemas that are visible to the currently logged-in user. This includes schemas that were uploaded by the current user and all global schemas owned by the administrator user.

...

In order to get a list of all schemas, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/schemas

...

In order to get a list of all ControlType's owned by a given FormType, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/controltypes?ownerId={formTypeId}

...

In order to get a list of DocumentType's owned by a given FormType or Schema, send the following request to the  serverfrevvo server:

Code Block
GET /frevvo/web/tn/{tenantId}/api/doctypes?ownerId={formTypeId}
or
GET /frevvo/web/tn/{tenantId}/api/doctypes?ownerId={SchemaId}

...

DocumentType's cannot be created from scratch using the API. They are either created automatically by  when frevvo when you design your forms or by uploading an XML Schema. They can, however, be added/removed to/from a FormType.

...

It is only possible to insert a DocumentType's into a FormTypes from an existing one (i.e. you wont won't be able to create a DocumentType from scratch, but you will be able to add a DocumentType found in a Schema into a FormType). The DocumentTypeFeed found in a SchemaEntry is read-only.

...

It is only possible to delete DocumentType's from a FormType as long as it was added from a Schema. This means that you can add and remove a Schema DocumentType's from a FormType but you wont won't be able to remove the its default DocumentType.