OpenJournal:API: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
OpenJournal uses MediaWiki as a backend for all of its content. Anything that is possible on the [https://www.mediawiki.org/wiki/API:Main_page MediaWiki API] is possible here too. | OpenJournal uses MediaWiki as a backend for all of its content. Anything that is possible on the [https://www.mediawiki.org/wiki/API:Main_page MediaWiki API] is possible here too. | ||
== REST API == | == REST API == | ||
| Line 26: | Line 25: | ||
Here are some examples | Here are some examples | ||
=== All articles by one user | === All articles by one user === | ||
<pre> | <pre> | ||
| Line 44: | Line 43: | ||
</pre> | </pre> | ||
=== | === All articles on the site, newest first === | ||
<pre> | <pre> | ||
| Line 61: | Line 60: | ||
GET /index.php?title=Special:RecentChanges&feed=atom&namespace=2 | GET /index.php?title=Special:RecentChanges&feed=atom&namespace=2 | ||
</pre> | </pre> | ||
=== An Atom feed of one author === | |||
One author's feed is the same URL narrowed with <code>&tagfilter=</code> or, more | One author's feed is the same URL narrowed with <code>&tagfilter=</code> or, more | ||
Latest revision as of 10:07, 13 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
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
All articles 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
An Atom feed of one author
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.