Don't kill the translator. Toru Marumoto

17Feb/080

Movable Type 4.1 and AtomPub

Finally, I had a chance to try MT's AtomPub with Fude.

Here is the list of things that I've noticed.

I've reported this to SixApart dev team. They quickly responded and told me that they recognized the problems and would fix these problems. Nice!

1) missing link@rel="EditURI" in the default template.

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/rsd.xml" />

2) missing service document url in the rsd file.

3) MT returns "401 Unauthorized" if a client sends a request without a username/password.
This is OK, but "401 Authorization Required" seems to be much better.

4) MT returns "403 Invalid login" if a client sends a request with a wrong username/password.
I believe it should be "401 Unauthorized".

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
403 Forbidden

The server understood the request, but is refusing to fulfill it.
Authorization will not help and the request SHOULD NOT be repeated. If
the request method was not HEAD and the server wishes to make public
why the request has not been fulfilled, it SHOULD describe the reason
for the refusal in the entity. If the server does not wish to make
this information available to the client, the status code 404 (Not
Found) can be used instead.

"The server understood the request, but is refusing", "Authorization
will not help", "request SHOULD NOT be repeated"

hum ... This case, Authorization HELPs. So I believe it should be "401 Unauthorized" instead of "403 Invalid login (Forbidden)".

5) content-type miss-match

HTTP/1.1 403 Invalid login
Date: Sat, 16 Feb 2008 20:57:24 GMT
Server: Apache
Www-authenticate: WSSE profile="UsernameToken"
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

<error>HASH(0x90c29d0)</error>

In the header, it says "Content-Type: text/html" but the response body isn't.
Error string is broken. HASH(0x90c29d0)

6) too many default namespace declaration in the feed.
Because of this, XPath fails.(xml parser's problem?) This seems to be a bug in my code. I forgot to explicitly tell parser to use XPath instead of XSLPattern. This is because before IE5.5SP2, MSXML did not fully support XPath. I think it is OK to dump IE5.x support right about now.

7) unnecessary //feed/link in the feed.

<link xmlns="http://www.w3.org/2005/Atom" rel="service.post"
href="http://example.com/mt/mt-atom.cgi/1.0/blog_id=1" title="My First
Blog" type="application/x.atom+xml"/>

Instead,

<link rel="self" type="application/atom+xml" href="someurl"/>

is preferred.
and additionally,

<link rel="first" type="application/atom+xml" href="someurl"/>
<link rel="last" type="application/atom+xml" href="someurl"/>

are nice to have.

8 ) //entry/content@type=html

<content xmlns="http://www.w3.org/2005/Atom" type="html">
<div xmlns="http://www.w3.org/1999/xhtml">This is a test.</div>
</content>

//entry/content@type=html
but, its actually child element is a xhtml:div. That means
//entry/content@type=xhtml
is the right one.

9) missing //feed/id, //feed/updated

10) missing media upload.
This is not a bug, but I want it ;-)

11) missing support for custom fields, tags, commentEnabled, trackbackEnabled, text_more, etc.


Filed under: Atom Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

(required)

No trackbacks yet.