UserPreferences

PaceUseAppOutlines


Abstract

Swap out Introspection format for [WWW]APP Service Description Format.

Status

Withdrawn (see PaceServiceDescription instead)

Rationale

The current introspection format is a poor fit for server description. It doesn't allow hierarchy, is extremely over-engineered, and clutters up the protocol document with XML trivia. Additionally, general-purpose data formats should be specified separately from application protocols, which is standard IETF practice. APP SDF is an extremely simple format that meets all of the requirements for Atom Protocol. At the time it was written, the WG was divided on whether to include introspection in the core protocol. That may no longer be the case, but this proposal shows that it is possible to do it sanely. If the WG wants to kick introspection out, they would just delete 6,7 and part of the introduction. If the WG wants to refer to it in passing, the approach this pace takes would work. IF the WG wants the introspection format *in* the protocol, they would just fold the draft in, replacing 6 & 7.

Proposal

Replace Sections 6 and 7 of draft-06 as follows:

In order for authoring to commence, a client must first discover the Atom Feeds offered by the server.

The outline is an APP Service Description Document [APP-SDF]. The top level service elements describe distinct groups of resources available on the server. For example, a user with an account containing three blogs would have 3 <service> elements under the root <app> element. There is no requirement that servers support multiple top-level services, and a feed may appear in more than one location in the document.

Clients read APP feeds by visiting the URI located in the 'href' attribute of a <service> element. This URI also serves as the location a client POSTs new entries to. The 'class' attribute of the <service> element indicates the type of feed.

An example APP Service Description:

<app>
  <service name="My Blog Entries" class="feed" href="/entries" />
  <service name="Pictures" class="media feed" href="/pics" />
  <service name="Remaindered Links" class="feed" href="/links" /> 
</app>

An example APP Service Description with nesting:

<app>
  <service class="feed" name="Main Blog" href="/entries">
    <service class="media feed" name="Photos" href="/photos"/>
    <service class="feed" name="Drafts" href="/drafts"> 
  </service>
  <service class="feed" name="Side Bar Blog" href="/2/entries">
    <service class="feed" name="Stuff" href="/2/stuff">
  </service>
  <service class="media feed" name="Moblog" href="/moblog"/>
</app>

Notes

see also: PaceSimpleIntroduction


CategoryProposals