Nookipedia:Development

From Nookipedia, the Animal Crossing wiki

More

  • More

Page actions

Nookipedia provides the ability for developers to access its content for development projects through two APIs. We encourage developers to use Nookipedia's API to develop bots, tools, applications, and more! This page serves as an introduction to the APIs, as well as a directory of existing developers' projects.

Development[edit]

Nookipedia has a variety of ways to query and extract data from the wiki. If you have any questions, you are welcome to ask onthe talk page or join ourDiscord server.

Nookipedia's text content is released under aCC BY-SA 3.0 license. Our data is free to use for any purpose; we simply ask that you provide attribution to Nookipedia, and a link back when possible.

Nookipedia API[edit]

Nookipedia has an easy-to-use API to access structured data from the wiki:

  • api.nookipedia.com, a RESTful service that provides highly-structured data and is in active development. This API serves as a wrapper for Nookipedia's Cargo data (covered in more detail below).

Users can request access to the API by following the instructions on the page linked above. If you have questions regarding using Nookipedia's API, feel free to post them onthe talk page. Users who are actively developing projects using the API are also encouraged to join us onDiscord. You'll be assigned the API developer role and will gain access to our support channel where you can ask questions directly. Contact one of Nookipedia'sdirectors for more information.

Cargo[edit]

Nookipedia utilizes theMediaWiki Cargo extension, which lets us store data from templates in structured databases. For example, if you visit a villager's article (e.g.Rosie), all the data you see in the infobox at the top of the page is stored in a database that can be queried elsewhere on the wiki, or through the MediaWiki API for external use.

A list of Nookipedia's Cargo tables is available atSpecial:CargoTables. Please note that several tables are under active development, and their metadata is subject to change. A list of tables and their status (development vs. production) is coming soon.

There are two ways to query Nookipedia's Cargo tables:

  • Throughour custom wrapper API; we recommend using this service in most cases for several reasons:
    • Hosted on its own dedicated server and cached, so it is not subjected to the wiki's performance limitations or downtime.
    • Changes we make to Cargo tables will be reflected in our API, so you can trust that nothing will break as our tables evolve.
    • Querying and filtering data is more lenient, as well as abstracted behind simple endpoints, making querying easier.
    • Additional features built in, such as the ability to generate thumbnails of varying size.
    • Actively monitored and under development (your feature requests can come to life).
  • Throughthe MediaWiki API, which provides direct access to Cargo tables. While the endpoints are more technical, they are powerful as they allow unfettered access to Nookipedia's Cargo tables through any SQL joins, group_bys, and where clauses you desire. We recommend using this when our wrapper above doesn't provide what you need, or if you are building out complicated queries that tie in data from multiple tables. A more in-depth guide on querying Cargo directly is coming soon.

MediaWiki API[edit]

Nookipedia, which runs on MediaWiki software, comes with theMediaWiki API that is standard on all MediaWiki instances. It can be used to extract list of articles from categories; grab statistics about the wiki; edit pages and upload files; grab page content to scrape; and more. If you're new to using the MediaWiki API, we recommend looking over the following to get started:

Licensing[edit]

Nookipedia's text content is released under aCC BY-SA 3.0 license. When using Nookipedia's text in your application, we request that you follow the terms of the license by citing Nookipedia as the source of the information, and linking back to the article's history when possible.

In the spirit of open source and knowledge, we also request that you open source your application (on a site such asGitHub) when possible.

Projects[edit]

The following is a list of community-made tools that utilize Nookipedia's API. If you have created your own project that isn't listed below, feel free to add it!

  • Nookipedia's official organizational projects are hosted atgithub.com/Nookipedia:
    • Ribbot: "Cogs" for Nookipedia's official Discord bot, running off ofRed.

Other projects built by the community are as follows:

  • Nookscraper on GitHub: A tool written in Go to scrape data from villager pages.
  • PellyBot on Reddit: A reddit bot that posts daily updates to theAnimal Crossing subreddit. The updates include events and birthdays for the week.
  • Sonchou: Some packages and scripts written in Go that could be useful to future users and developers of Nookipedia. More information can be found inthe godoc.
  • Nookbot: A bot for the Animal Crossing: New Horizons Discord server. Includes a villager information lookup.


Nookipedia
MainNookipedia Logo - Leaf and Text.svg
Discussions
Tech & Gadgets
Policy
Help pages
User Levels
Projects
Category