Additional Forms of Interaction
In addition to the API outlined above there are several API-like URLs that can be used to retrieve data from anyMeta.
In general they should be used as a complement, not a replacement, for the API, but naturally usage will vary depending on what you are trying to achieve. As many of the URLs are provided by anyMeta modules which are common, but not universal, you need to first check whether the anyMeta site you're working with has the module installed. Of course, simply making a request to one of the URLs and looking for a 404 response is the easiest way.
/id/thing_id
Any Thing in an anyMeta site can be requested by using the URL pattern http://the.anymeta.site/id/thing_id. Like with the API, a symbolic name may also be used in place of a numeric thing_id. These URLs are not actual destinations or representations of Things but instead route the requester to URLs that do. The response will be an HTTP response with the 303 See Other status and provide a Location header specifying a URL that fulfills the requester's requirements. Requirements are given via the Accept request header. The following table outlines what sort of response Location and content can be expected given certain Accept headers.
| Accept Header | Redirects To | Description | anyMeta Module |
|---|---|---|---|
| text/html; application/xhtml+xml; */* | /page/:id /person/:id /search/:id /forum/:id /note/:id |
HTML representation (depending on thing type) | Page |
| application/json | /thing/:id/json | Full JSON dump | ThingDump |
| application/x-php-serialized | /thing/:id/php | Full PHP-serialized dump | ThingDump |
| application/x-anymeta-thing+xml | /thing/:id | Full XML dump | ThingDump |
| application/atom+xml | /atom/:id | Atom XML of thing (atom |
Atom |
| application/rdf+xml | /foaf/:id | Friend-of-a-friend XML representation of user | Contact |
| image/* (literal! image/jpeg wont work) | /picture/:id | Redirects to image URL age | |
| text/json+xmpp-pubsub-uri | /pubsub/:id | XMPP URI of pubsub node for subscribing to thing updates | PubSub |
For instance:
$ curl -D - -A 'Accept: application/atom+xml' http://www.mediamatic.net/id/22661
HTTP/1.1 303 See Other
Location: http://www.mediamatic.net/atom/22661
Other URLs with thing representations
The following are also valid for all things, but cannot be requested through an Accept header on the resource_uri.
| URI | Description | Response Content Type | anyMeta Module |
|---|---|---|---|
| /rdf/:id | RDF XML representation | application/rdf+xml | RDF |
| /atom/feed/:id | Atom feed of the thing. The thing needs to be a LISTPUBLISH or a SET. | application/atom+xml | Atom |
| /person/feed/:id | Atom feed of the activity stream of the person. | application/atom+xml | Notifications |
| /attachment/:id | For things of type 'attachment', serves the raw file as download. | depending on thing | Page |
| /visualize/:id | Flash visualization of the thing and its network | text/html | Visualize |
| /changes/:id | Change log of the history of a thing. Only visible when you have edit permissions on the thing. | text/html | Page |
| /browse/:id | Semantic browser, showing incoming and outgoing edges for the thing. | text/html | Browser |
| /dump/:id | Shows a php “var_dump” dump of the public thing record. | text/html | ThingDump |
| /page/:id/:lang | Request the thing page in a specific language | text/html | Page |
| /edit/:id | Edit the thing | text/html | Edit |
| /edit/:id/:lang | Edit a language version of the thing | text/html | Edit |
anyMeta's XMPP nodes
Every anyMeta website which is connected to the Open-CI network also has XMPP connectivity. anyMeta implements XEP-60, publish/subscribe, which generates notifications to certain nodes whenever somethings happens on a website. When subscribing, you need a service and a node. The service of an anyMeta website is usually the hostname with 'www' replaced by 'pubsub': www.mediamatic.net → pubsub.mediamatic.net, etc. The nodes, and their explanations, are listed in the table below.
| Node | Get a notification whenever... | Item content | anyMeta Module |
|---|---|---|---|
| (empty string) | any other pubsub node would get a notification. | varied | PubSub |
| id/:id | this thing has been updated. | thing atom representation | PubSub |
| kind/:kind | a thing with given kind has been updated. | thing atom representation | PubSub |
| type/:type | a thing with given kind has been updated. | thing atom representation | PubSub |
| status | somebody sets his status | xml | Status |
| activity | anybody produces an activity | atom entry with activitystreams extension | Notifications |
| activity/:id | user :id receives an activity | atom entry with activitystreams extension | Notifications |
| ikcam/:id | ikcam :id makes a picture | xml: <rsp>...</rsp> |
IkCam |
| ikcam/by_event/:id | an ikcam connected to event :id has made a picture | xml: <rsp>...</rsp> |
IkCam |
| status/:id | user :id has updated his status | xml: <rsp>...</rsp> |
Status |
| status/by_event/:id | a user participating in event :id has updated his status | xml: <rsp>...</rsp> |
Status |
| vote/:id | a user has voted on question :id | xml: <rsp>...</rsp> |
IkPoll |
| race/:id | a user has completed the alleycat race :id | xml: <rsp>...</rsp> |
Alleycat |
| race | a user has completed an alleycat race. | xml: <rsp>...</rsp> |
Alleycat |
| regdesk | a badge has been printed out for a user. | xml: <rsp>...</rsp> |
Badge |
Contributions
Comments
Peter
Robin
Arjan
Abel