Alfresco Content Management Web Services

From AlfrescoWiki

Jump to: navigation, search

Back to Developer Guide

Contents

[edit] Introduction

This document tracks the design of the Alfresco Content Management Web Services API. In true open fashion, we're defining and refining the API publicly. Please feel free to comment and make suggestions.

The following Business Use Cases and goals are driving our design:

  • As easy to understand and develop against as possible
  • Accessible to as many client languages as possible
  • Designed for remote repository access (for composite applications and business processes)

[edit] Web Services Reference

This section provides reference material covering all facets of Alfresco's Web Services.

[edit] Services

Alfresco aims to provide the following set of Web Services.

Service Description Status
Authentication login and logout Available
Repository query and model manipulation Available
Content content manipulation Available
Authoring collaborative content creation Available
Classification apply classifications and categories Available
Access Control roles, permissions & ownership Available
Action manage actions and rules Available
Administration user management, export & import Available
Dictionary model descriptions Available
FileSystem common file and folder methods Future

[edit] Data Types

Each Web Service method relies upon the following data types for input and output messages. The data types are focused towards a content domain and could be used outside of the context of Web Services if required.

Group Description
Identifiers Means for identifying and locating content
Content Content data
Query Query and result sets
Meta Data Content meta data (data dictionary)
Versioning Version graphs and history
Classification Categorisation of content

The latest formal definition of the above data types can be found here in the Web Service Data Types XML Schema.

[edit] SOAP Headers

The following SOAP headers provide extra control over Web Service methods.

Header Description
QueryHeader Provision of query hints
LocaleHeader Provision of locale requirements
NamespaceHeader Mapping of Namespace Prefix
UsernameToken Profile Provision of security information

The formal definition of the above headers can be found here in the SOAP Header XML Schema.

[edit] Query Languages

The core of any content management interface must be a query language. At the core of Alfresco's web services interface, we intend to support multiple query languages for querying and manipulating content. These can be thought of as the equivalent of SQL and SQL DML in a JDBC context. Although we support an XPath interface and Lucene now, our intention is to support a SQL-based query language. This query language is used to identify sets of operations in the web services methods.

Language Purpose Description
Content Query Language (CQL) Query SQL based - We are actively seeking comments
Content Manipulation Language (CML) Update Content Manipulation Language - We are actively seeking comments
XPath Query JCR XPath
Lucene Query Google like

Please note we're currently in the process of defining CQL - a language for powerful and familiar queries against the content domain model which provides support for classification, path and join capabilities.

[edit] Content Upload

  • Upload Content Servlet - the content upload servlet can be used to stream larger content into the repository.

[edit] Cross-Language Support

You will find details of how to access the Alfresco web service API from a variety of different programming languages here:

[edit] Alfresco's Web Service Implementation

Here, you'll find information about Alfresco's implementation of its Web Services.