Examples
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Intro
Depending on your version of Mediawiki you'll get different API details and help pages:
API usage examples
You might have to change the DEFAULT_SCRIPTPATH depending on your wiki configuration see Issue26
Sample query:get a single page
http://www.mediawiki.org/wiki/API:Query#Sample_query
Mediawiki wiki=new Mediawiki("http://en.wikipedia.org");
String content=wiki.getPageContent("Main Page");
/**
* http://www.mediawiki.org/wiki/API:Query#Sample_query
* http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&titles=Main%20Page&format=xml
* @throws Exception
*/
@Test
public void testSampleQuery() throws Exception {
Mediawiki wiki=new Mediawiki("http://en.wikipedia.org");
String content=wiki.getPageContent("Main Page");
assertTrue(content.contains("Wikipedia"));
}
login/logout
http://www.mediawiki.org/wiki/API:Login
Login login=wiki.login("scott","tiger");
wiki.logout();
/**
* test Login and logout
* see <a href='http://www.mediawiki.org/wiki/API:Login'>API:Login</a>
* @throws Exception
*/
@Test
public void testLogin() throws Exception {
WikiUser wuser=WikiUser.getUser("mediawiki_org");
Login login=wiki.login(wuser.getUsername(),wuser.getPassword());
assertEquals("Success",login.getResult());
assertNotNull(login.getLguserid());
assertEquals(wuser.getUsername(),login.getLgusername());
assertNotNull(login.getLgtoken());
wiki.logout();
}
query
Allpages
/**
* test the Allpages API call http://www.mediawiki.org/wiki/API:Allpages
*
* @throws Exception
*/
@Test
public void testGetAllPages() throws Exception {
for (ExampleWiki lwiki : getWikis()) {
Api api = getQueryResult(lwiki, "&list=allpages&apfrom=Kre&aplimit=3");
List<P> pageRefList = api.getQuery().getAllpages();
assertEquals(lwiki.getSiteurl(),3, pageRefList.size());
}
}
Edit
https://www.mediawiki.org/wiki/API:Edit
wiki.login("scott","tiger");
wiki.edit("Test Page 1","new content of test page 1","Summary for this edit");
Multiple Implementations
0.1.06 supports to use different implementations via the common MediawikiApi Java Interface. E.g. you can use the one-class implementation org.wikipedia.Mediawiki.
@Test
/**
* Test for issue #3
* @throws Exception
*/
public void testMultipleImplementations() throws Exception {
MediawikiApi[] wikiapis = { new Mediawiki(), new org.wikipedia.Mediawiki() };
for (MediawikiApi wikiapi : wikiapis) {
wikiapi.setSiteurl("http://en.wikipedia.org");
String content = wikiapi.getPageContent("Main Page");
assertTrue(content.contains("Wikipedia"));
}
}