Live Forms Latest - This documentation is for Live Forms 7.4 Not for you? Earlier documentation is available too.

Skip to end of metadata
Go to start of metadata

This section describes the basic protocol used to interact with Live Forms 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 of the format and protocol used by the Live Forms 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 Live Forms Server using any programming language that lets you issue HTTP requests and consume XML-based responses.

There are various different types of Live Forms 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 application using the Live Forms UI, for instance users, applications, form, 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. The following diagram shows these different resources currently being exposed by the Data API and the ownership relationships among them:

On this page:

 

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

                                                             Live Forms Data API URLs

Resource Description  Resource URI
Users Feed /frevvo/web/t/{tenantId}/api/users
User Entry/frevvo/web/t/{tenantId}/api/user/{id}
ApplicationFeed /frevvo/web/t/{tenantId}/api/apps?ownerId={userId}
ApplicationEntry/frevvo/web/t/{tenantId}/api/app/{id}
FormTypeFeed/frevvo/web/t/{tenantId}/api/formtypes?ownerId={appId}
FormTypeEntry /frevvo/web/t/{tenantId}/api/formtype/{id}
SchemaFeed/frevvo/web/t/{tenantId}/api/schemas?ownerId={appId}
SchemaEntry/frevvo/web/t/{tenantId}/api/schema/{id}
ControlTypeFeed/frevvo/web/t/{tenantId}/api/controltypes?ownerId={formTypeId}
ControlTypeEntry/frevvo/web/t/{tenantId}/api/controltype/{id}
SubmissionFeed /frevvo/web/t/{tenantId}/api/submissions
SubmissionEntry /frevvo/web/t/{tenantId}/api/submission/{id}
 Note that the ownerId query parameter is optional when querying any feed but required when inserting a new entry into the feed (more details on this below)

UserFeed

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 Live Forms  allowing them to manage user settings.

Getting the UserFeed

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

The server will respond with:

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

Getting a UserEntry

It is also possible to directly get a specific User entry as long as you know the id for that user. In order to do that send the following request to the server:

And the server will respond with:

Since at this point User entries are also read-only for this release, they can only be used to traverse to related feeds such as the users application and theme feeds (see the two link elements with a rel attribute with value apps and themes, respectively, in the entry above)

Inserting a new UserEntry

Inserting (creating) new users using the Data API is not supported at this time.

Updating a UserEntry

Updating the user profile using the Data API is not supported at this point.

Deleting a UserEntry

Deleting a user using the Data API is not supported at this point.

ThemeFeed

The theme feed lists all themes visible to the currently logged-in user. This includes enabled themes that were uploaded by the current user and all enabled themes that are global, i.e. owned by the admin user.

Getting the ThemeFeed

In order to get a list of all themes, send the following request to the Live Forms server:

The server will respond with:

The returned feed above shows two theme entries named Clear and Blue Professional that happen to be the two global themes provided by default by the Live Forms installation.

Getting a ThemeEntry

It is also possible to directly get a specific Theme entry as long as you know the theme id. In order to do that send the following request to the server:

And the server will respond with:

It is not possible to download the theme using the Data API for this release: support for that will be added in a subsequent release.

Inserting a new ThemeEntry

Inserting a new theme using the Data API is not supported at this point.

Updating a ThemeEntry

Updating a theme is not supported at this point.

Deleting a ThemeEntry

Deleting a theme can be done by sending an HTTP DELETE request to the theme entry url.

And the server will respond with:

ApplicationFeed

The application feed lists all applications owned by the currently logged-in user.

Getting the ApplicationFeed

In order to get a list of all applications, send the following request to the Live Forms server:

The server will respond with:

The returned feed above shows one application entry named "Expense Reports" owned by the current user 'johndoe'.

Getting an ApplicationEntry

It is also possible to directly get a specific application entry as long as you know the application id. In order to do that send the following request to the server:

And the server will respond with:

Inserting a New ApplicationEntry

And the server will respond with:

Updating an ApplicationEntry

Updating application properties using the Data API is not supported at this point in time.

Deleting an ApplicationEntry

Deleting an application can be done by sending an HTTP DELETE request to the application entry url.

And the server will respond with:

FormTypeFeed

The formtype feed contains a list of all forms across all applications owned by the currently logged-in user.

Getting the FormTypeFeed

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

The server will respond with:

The feed returned above shows one form entry Expense Report that is owned by the current user.

Getting a FormTypeEntry

It is also possible to directly get a specific formtype entry as long as you know the formtype id. In order to do that send the following request to the server:

And the server will respond with:

Once you have a FormTypeEntry Url you can get the:

Note that for some of the links above there are two links for the same rel attribute (e.g. the '''formtype''' link): 

Inserting a new FormTypeEntry

And the server will respond with:

Updating a FormTypeEntry

Updating a form using the Data API is not supported at this point.

Deleting a FormTypeEntry

Deleting a form using the Data API can be done by sending an HTTP DELETE request to the form type entry url.

And the server will respond with:

SchemaFeed

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.

Getting the SchemaFeed

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

The server will respond with:

The returned feed above shows one schema entry named Purchase Order that is owned by the current user.

For this release schema feeds are read-only and so it is not possible to upload new schemas using the Data API. Support for that will be added in a subsequent release.

Getting a SchemaEntry

It is also possible to directly get a specific schema entry as long as you know the theme id. In order to do that send the following request to the server:

And the server will respond with:

It is not possible to download the theme using the Data API for this release: support for that will be added in a subsequent release.

Inserting a new SchemaEntry

Inserting XML Schemas using the Data API is not supported at this point.

Updating a SchemaEntry

Updating an existing schema using the Data API is not supported at this point.

Deleting a SchemaEntry

Deleting a schema using the Data API can be done by sending an HTTP DELETE request to the schema entry url.

And the server will respond with:

ControlTypeFeed

The controltype feed contains a flat list of all controltypes contained in a given FormType.

Getting the ControlTypeFeed

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

The server will respond with:

Getting a ControlTypeEntry

It is also possible to get a specific controltype entry as long as you know its id. In order to do that send the following request to the server:

And the server will respond with:

Once you have a ControlTypeEntry Url you can get the:

Inserting a new ControlTypeEntry

Not supported at this point. The ControlTypeFeed is read-only and changes can only be made through the designer.

Updating a ControlTypeEntry

Not supported at this point. The ControlTypeFeed is read-only and changes can only be made through the designer.

Deleting a ControlTypeEntry

Not supported at this point. The ControlTypeFeed is read-only and changes can only be made through the designer.

DocumentTypeFeed

A DocumentType represents a schema for a single Document (contrast this with a Schema that is namespace aggregating a set of top-level elements or DocumentType's). You will find DocumentType's in uploaded XML Schemas, one DocumentType for each root element in the schema, and in FormType's, one default DocumentType and zero or more DocumentType's from an XML Schema.

The reason you may want to add a DocumentType from a Schema to a FormType is so that you can auto-generate controls bound to elements in that DocumentType. Schema DocumentType's added to a FormType will show up in the Data Source pane in the designer.

Getting the DocumentTypeFeed

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

The server will respond with:

Getting a DocumentTypeEntry

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

And the server will respond with:

Inserting a new DocumentTypeEntry

It is only possible to insert a DocumentType's into a FormTypes from an existing one (i.e. you wont 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.

TODO

Updating a DocumentTypeEntry

Not supported at this point.

Deleting a DocumentTypeEntry

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 be able to remove the its default DocumentType.

  • No labels