In 2011, I was working at a media agency in San Francisco, developing an e-commerce application in PHP. I was the sole, “lead” developer and all of the code had been written by the agency’s resourceful creative director. I needed to add some new features to the platform, like product reviews, payment system improvements, product variations, and who knows, even a public API? This was really “learning by doing,” one of the many aspects of progressive education that we promote at the CTL. I used MediaWiki’s API to learn about how APIs work in web applications, including related themes like rate limits, data formats, authentication, etc. I put together an over-engineered API in our PHP application (called QubixCart) that never actually saw any use, but the process was fun and educational.
Seven years later, I’ve found a reason to actually use MediaWiki’s API. You can use it to make a lightweight text archive of parts of your wiki. I’ve made this mediawiki-export script to get a tree of text files from your wiki, based on a list of categories.
MediaWiki’s API was designed a while ago, and doesn’t look or act like the more user-friendly APIs that have since been developed at sites like Twitter and GitHub. To find out the details of the requests I needed, I used MediaWiki’s API Sandbox — pretty much a trial-and-error process until I got data that looked right, then parameterized this and put it in my wiki-export script.
Finally, if your wiki is private, you’ll have to take that into
account when running wiki-export.py
. Here are two options you have:
- Set up oAuth authentication in
mediawiki-export.py
. - Run
mediawiki-export.py
on the same server as your wiki, and authenticate by whitelisting localhost via the NetworkAuth extension.
In my scenario, I went with the second option.
Printed from: https://compiled.ctl.columbia.edu/articles/how-to-use-mediawikis-api-to-export-content/