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”.
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
Www-authenticate: WSSE profile=”UsernameToken”
Keep-Alive: timeout=5, max=100
Content-Type: text/html; charset=utf-8
In the header, it says “Content-Type: text/html” but the response body isn’t.
Error string is broken. HASH(0×90c29d0)
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
<link rel=”self” type=”application/atom+xml” href=”someurl”/>
<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>
but, its actually child element is a xhtml:div. That means
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.