Jump to content

OpenJournal:API: Difference between revisions

From openjournal
No edit summary
No edit summary
Line 7: Line 7:


You can see some examples below:
You can see some examples below:
=== Retrieving content ===


<pre>
<pre>

Revision as of 16:17, 11 September 2026

OpenJournal uses MediaWiki as a backend for all of its content. Anything that is possible on the MediaWiki API is possible here too.


REST API

For convenience, OpenJournal abstracts some of the MediaWiki URLs into a more modern RESTful format.

You can see some examples below:

Retrieving content

GET /users/{username}/posts                     all of a user's posts, alphabetical by title
GET /users/{username}/posts/{title}              one post: title, wikitext, last-edited time
GET /users/{username}/posts/{title}?format=html  the same post, rendered to HTML
GET /users/{username}                            redirects to their journal (browsable)

{title} is the part after the slash, with spaces as underscores, e.g. /users/Alice/posts/Laying_a_hedge for User:Alice/Laying a hedge.

Traditional API

You can still directly call the API in "the MediaWiki way".

Here are some examples

All articles by one user (the underlying MediaWiki call)

GET /api.php?action=query&list=allpages&apnamespace=2&apprefix=Alice/&format=json

One article, as HTML

GET /rest.php/v1/page/User%3AAlice%2FSome_title/html

One article, as source

GET /rest.php/v1/page/User%3AAlice%2FSome_title

Every article on the site, newest first

GET /api.php?action=query&generator=recentchanges&grcnamespace=2&grclimit=30&format=json

Excerpts and lead images, for a card or a feed

GET /api.php?action=query&prop=extracts|pageimages&exchars=300&explaintext=1&titles=User:Alice/Some_title&format=json

An Atom feed of everything

GET /index.php?title=Special:RecentChanges&feed=atom&namespace=2

One author's feed is the same URL narrowed with &tagfilter= or, more simply, poll list=allpages above.

Writing from your own code

See the full parameter reference at Special:ApiHelp/query to harness the full power of the API.