JSONFeed
JSONFeed copied to clipboard
Problems with "hubs" feature
There's a few problems I see with the hubs feature. Below are some points for discussion:
- The hub types are ill-defined. The spec suggests ("such as") "WebSub and "rssCloud" without marking these up as sample text, so it's not evident these are to be taken literally as string values i.e.
"rssCloud"and"WebSub" - Even if the types are taken literally, capitalization is inconsistent. I realize this is because that's how the schemes refer to themselves, but it gives authors of future hub schemes no guide on how a future type should be named
- Using this for rssCloud is impractical because rssCloud is actually three related schemes using SOAP, XML-RPC, or
application/x-www-form-urlencodedpayloads. Though clients can doHEADrequests to figure out which payload(s) the endpoint will accept, RSS technology isn't exactly known for its robustness; I doubt any rssCloud clients (assuming any still exist?) actually do this. - The structure of a hub object has no formal description, unlike every other object
These are my very non-authoritative opinions as the author of an implementation of a rssCloud server. I think these problems can be solved with a little extra documentation. Feel free to ignore me 😄
- I think it's fine that these values are not pre-defined. It should be up to the publisher and the subscriber to know what they want to support.
- If there is no specification about capitalization I'd treat the
typefield as a case insensitive string so "rssCloud" or "rsscloud" or "RssCloud" would all be the same. - It's not really an issue for rssCloud because you're just specifying where to subscribe to notifications so you'd do
http://rpc.rsscloud.io:5337/pleaseNotifyorxmlrpc://rpc.rsscloud.io:5337/RPC2;rssCloud.pleaseNotify. As far as I know there are no implementations that currently support SOAP. Neither Dave's original rssCloud.root or my node server support it. - It looks like the spec says "Each object has a type and url, both of which are required." If you want the fields described further that's fine but I can't imagine they would be anything other than strings.