On Jun 9, 2009, at 2:38 PM, Sylvain Hellegouarch wrote:


There is only one must-understand signaling mechanism in AtomPub and that is app:accept.
I don't remember seeing that "must-understand", could you reference it please?

ยง 8.3.4 of RFC 5023 states

[[
The media range specifies a type of
   representation that can be POSTed to a Collection.

The app:accept element is similar to the HTTP Accept request-header
   [RFC2616].  Media type parameters are allowed within app:accept
]]

I interpret this to mean that app:accept is a kind of must-understand. However, a client may still attempt to POST however unsuccessfully. Of course, there is no hard "must-understand" in AtomPub.


If a media type parameter is used in app:accept that cannot be understood by its receiver, the receiver has no choice but to cease communications with the server.

What does that mean? What does "cease communication" actually mean in HTTP?

IIUC, AtomPub clients will not POST to a server entries that don't conform to one of the acceptable content types for the collection, as advertised in an app:collection element through app:accept. This is what I meant. Of course, anything is possible in HTTP, but my commentary was limited to conforming AtomPub clients.


Since almost every AtomPub-style "API" introduces its own set of requirements for what constitutes an entry the server is willing to accept.

For example, Google Finance API in its protocol reference states that an entry posted as a new portfolio must include a "gf:portfolioData" element inside an atom:entry [3]. CMIS servers may require the presence of a type identifier as extended entry metadata in order to accept an entry posted to a collection [4].

Yes, those are foreign elements which is accepted by the spec. I don't follow your point.

Point being that if you were to submit a valid Atom entry which did not have the foreign markup, the server would simply decline the request, even though it may advertise

<app:accept>application/atom+xml;type=entry</app:accept>

We had a pretty detailed discussion of this topic on atom-protocol, which you may wish to review [1]


It seems quite reasonable to establish a single media type parameter and allow every such API to define their own acceptable values for this purpose. This approach provides fair warning and enables AtomPub niches to legally exist, and even interoperate.
How do they interoperate if they aren't known by others?

Can you specify "they"? Interoperation is only possible because the parties to it understand the meaning of the value of a special Atom media type parameter.


The second case can probably benefit from a media type parameter, but it is not clear what the semantics of that parameter would be. Specifically:

  1. Do Atom processors fail if, when processing Content-Type header,
     they encounter a media type parameter they don't know about or a
value in a known media type parameter that they don't understand.

Client side or server side?

Why should it matter? This question is addressed to atom-syntax and intends to question what RFC4287 calls Atom Processors.

Nikunj
http://o-micron.blogspot.com

[1] http://www.imc.org/atom-protocol/mail-archive/msg11398.html

Reply via email to