The Atom Publishing Protocol (APP) is an application-level protocol
for publishing and editing Web resources. The protocol is based on
HTTP transfer of Atom-formatted representations. The Atom format is
documented in the Atom Syndication Format [RFC4287].
Protocol Model
The Atom Publishing Protocol uses HTTP methods to author Member
Resources as follows:
o GET is used to retrieve a representation of a known resource. ( currently the plugin supports pages and news )
o POST is used to create a new, dynamically-named, resource. When
the client submits non-Atom-Entry representations to a Collection
for creation, two resources are always created - a Media Entry for
the requested resource, and a Media Link Entry for metadata (in
Atom Entry format) about the resource.
o PUT is used to update a known resource.
o DELETE is used to remove a known resource.
This plugin implements the draft version of the atom publisihing protocl - http://www.ietf.org/html.charters/atompub-charter.html
APP is emerging as the leading content publishing api and there are a host of clients on the way.
Purpose :
Provide access to confluence content via a universal publishing api - allow the usages of WYSIWYG xhtml publishing editors.
Usage :
Once deployed the plugin exposes the Service Document (the entry point for clients ) at http://your-confluence-server:your-port/plugins/servlet/app
currenty resources are provided in raw wiki markup and accepted in wiki format with a "text" content type or html/xhtml with the "xhtml" or "html" content types
further work is required to provide a seamless wiki<->xhtml translation.
Testing :
Simplest way to test is by using wget :
{code}
C:\dev\apps\confluence-2.4.5-std\bin>wget -O - http://localhost:8086/plugins/servlet/app/
--13:15:19-- http://localhost:8086/plugins/servlet/app/
=> `-'
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8086... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/atomsvc+xml]
[<=> ] 0 --.--K/s <
?xml version="1.0" encoding="UTF-8"?>
Demonstration SpacepagesentrynewsentrySpace Cadetspagesentrynewsentry
[ <=> ] 1,180 --.--K/s
13:15:20 (21.09 MB/s) - `-' saved [1180]
{code}
The above service document describes 2 workspaces ( a workspace mapps to a confluence space ), each with two collections - "pages" and "news"
you can retrieve a collection using the href attribute specified by the service document - lets get the collection of pages for the Deomonstration Space:
{code}
wget -O - http://localhost:8086/plugins/servlet/app/ds/pages
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8086... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/atom+xml]
pagesadminhttp://localhost:8086/display/dspages2007-04-27T18:56:26ZThumbnail galleryadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327702007-04-27T18:56:27Z2004-11-21T18:44:10ZImages look very effective when included within Confluence. We've provided thumbnail and thumbnail gallery macro http://confluence.atlassian.com/display/DOC/GalleryMacro functionality. Confluence builds a gallery of thumbnailed images, to the page, by use of the gallery macro. . Including ...Tasklistadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327712007-04-27T18:56:27Z2004-11-21T15:57:13ZMore information about the tasklist macro is available at Tasklist macro http://confluence.atlassian.com/display/CONFEXT/TaskListMacro The tasklist macro comes packaged with Confluence (since version 1.3). It allows you to create lists of tasks which need to be performed and keeps ...Newsadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327722007-04-27T18:56:27Z2004-11-17T23:24:05ZCreating RSS feeds in Confluence is easy. Usage: \ Parameter Required Default Description myrssurl yes none the url to the RSS feed Example: \ Insert CNN feed hereCreating pages and linkingadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327732007-04-27T18:56:27Z2004-11-22T00:34:03Zdocumentation below is an abbreviated version of our online documentation for creating pages and links http://confluence.atlassian.com/display/DOC/LinkingInConfluence in Confluence. You may also find our online discussion of Page families http://confluence.atlassian.com/display/DOC ...Breadcrumb demonstrationadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327742007-04-27T18:56:27Z2004-11-22T00:40:11Zmore in depth information on breadcrumbs and page hierarchies visit our online documentation at Page families http://confluence.atlassian.com/display/DOC/PageFamilies As a child of Creating pages and linking, this page is ideal for demonstrating the concept of breadcrumbs. \\ Breadcrumbs designate a pathway through ...Indexadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327762007-05-10T00:33:34Z2004-11-15T18:17:00Z{index}...Formatting Contentadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327772007-04-27T18:56:27Z2004-11-18T02:13:31ZConfluence markup is easy to learn and quick to use. Below you will find a quick overview of markup, but not a comprehensive one. It is enough to get you started. You can also visit our online documentation for Confluence Markup http://confluence.atlassian.com/display ...Source codeadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327782007-04-27T18:56:27Z2004-11-18T02:06:53Zother macros, besides that of the source code macro discussed below, please visit The Guide to Confluence Macros http://confluence.atlassian.com/display/DOC/GuidetoConfluenceMacros. The source code macro is a useful way of presenting technical information to a group of users online. It's use ...Search Confluence contentadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327792007-04-27T18:56:27Z2004-11-15T19:09:56ZConfluence search engine is based on Lucene http://jakarta.apache.org/lucene. It begins working as soon as you install Confluence and can build search indices on a wide range of document types: blogs, pages, comments, attachments, etc.. Confluence can search ...Using Spacesadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327802007-04-27T18:56:27Z2004-11-22T18:32:19Zmore detailed introduction to spaces please refer to our online documentation http://confluence.atlassian.com/pages/viewpage.action?pageId=390. Spaces bind Confluence content together beneath a name. They are the containers for pages, blogs, and email. As you've probably guessed by now ...Example Indexadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327812007-04-27T18:56:27Z2004-11-21T16:32:20Z{index:exampleIndex}
...Email archivingadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327842007-04-27T18:56:27Z2004-11-21T23:14:24ZEmail functionality is discussed in greater detail in the release notes http://confluence.atlassian.com/pages/viewpage.action?pageId=9919 for mail archiving Confluence can archive emails which is useful for tracking information over a long period of time and referencing emails in documents ...RSS Capabilitiesadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327852007-04-27T18:56:27Z2004-11-15T18:41:35ZBelow you will find a quick introduction to the use of RSS on Confluence. If you wish to find more information then please visit our online introduction to RSS http://confluence.atlassian.com/display/DOC/RSS. Alternatively, you can view online documentation ...Confluence Overviewadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327872007-04-27T18:56:27Z2004-11-15T18:51:54ZConfluence space is a living example of how to share information with others. You may to the space whenever you wish. In fact, we encourage you to do so. :) Please direct any sales related questions to mailto:sales@atlassian.com or please view ...Jira integrationadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327882007-04-27T18:56:27Z2004-11-18T01:59:25ZBelow you will find a brief introduction to Jira. For more information on Atlassian's founding product please see the Jira webpage http://atlassian.com/software/jira for more information or, alternatively, learn how to pronounce "Jira" http://atlassian.com/software/jira ...
{code}
The result is a std Atom 1.0 feed of all the pages in the space.
To get a single page we use the edit link of the entry :
{code}
C:\dev\apps\confluence-2.4.5-std\bin>wget -O - http://localhost:8086/plugins/servlet/app/ds/pages/32788
--13:23:15-- http://localhost:8086/plugins/servlet/app/ds/pages/32788
=> `-'
Resolving localhost... 127.0.0.1
Connecting to localhost|127.0.0.1|:8086... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/atom+xml]
[<=> ] 0 --.--K/s <
entry xmlns="http://www.w3.org/2005/Atom">
Jira integrationadminhttp://localhost:8086/plugins/servlet/app/ds/pages/327882007-04-27T18:56:27Z2004-11-18T01:59:25Z{panel}
Below you will find a brief introduction to Jira. For more information on Atlassian's founding product please see the [J
ira webpage|http://atlassian.com/software/jira] for more information or, alternatively, learn [how to pronounce "Jira" |
http://atlassian.com/software/jira/docs/latest/faq.html#what_does_jira_mean]
{panel}
{excerpt}
Jira is Atlassian's issue tracking system. Confluence can watch issues created within Jira, allowing the integration of
a content management solution with an issue tracking system.
{excerpt}
{jiraissues:url=http://jira.atlassian.com/secure/IssueNavigator.jspa?view=rss&order=DESC&tempMax=25&reset=tr
ue|columns=type;key;summary;priority;assignee;status|cache=no}Below you will find a brief introduction to Jira. For more information on Atlassian's founding pr
oduct please see the Jira webpage http://atlassian.com/software/jira for more information or, alternatively, learn how t
o pronounce "Jira" http://atlassian.com/software/jira ...
[ <=> ] 1,542 --.--K/s
{code}
To try the protocol with a GUI client get the python based APP Test Client from http://bitworking.org/projects/apptestclient/