A free, easy-to-use and open-source RESTful API for Anime Data.
It's a javascript API built using node.js
and express.js
.
AnimeAPI is going to provide a complete service for requesting anime data.
Here are some examples:
GET /api/anime/Shingeki+no+Kyojin
GET /api/anime/513
{
"id": 513,
"title": "Shingeki no Kyojin",
"title-en": "Attack on Titan",
"title-jp": "進撃の巨人",
"picture": "http://cdn.myanimelist.net/images/anime/10/47347.jpg",
"synopsis": "Centuries ago...",
"type": "TV",
"episodes": 25,
"tags": [ "shounen", "action", "drama", "fantasy" ],
"released": "2013-04-07",
"season": "Spring 2013",
"characters": [
{
"id": 1212,
"name": "Mikasa Ackerman",
"name-jp": "ミカサ・アッカーマン",
"picture": "http://cdn.myanimelist.net/images/characters/9/215563.jpg",
"age": 15,
"birthdate": "February 10",
"height": 170,
"weight": 68,
"about": "Mikasa is Eren's adoptive sister and..."
},
{
"id": 1213,
"name": "Eren Yeager",
"name-jp": "エレン・イェーガー",
"picture": "http://cdn.myanimelist.net/images/characters/10/216895.jpg",
"age": 15,
"birthdate": "March 30",
"height": 170,
"weight": 63,
"about": "Eren is Shingeki no Kyojin's protagonist. His adoptive sister..."
}
]
}
GET /api/character/Mikasa+Ackerman
GET /api/character/1212
{
"id": 1212,
"name": "Mikasa Ackerman",
"name-jp": "ミカサ・アッカーマン",
"picture": "http://cdn.myanimelist.net/images/characters/9/215563.jpg",
"age": 15,
"birthdate": "February 10",
"height": 170,
"weight": 68,
"about": "Mikasa is Eren's adoptive sister and..."
}
GET /api/season/current
GET /api/season/2013/spring
{
"name": "Spring 2013",
"animes": [
{ },
{ },
{ }
]
}
I'm not sure how far I can get with this project by myself. To make sure the API data is always up-to-date, I will probably need some help of the community.
For who wants to contribute, here are things that are welcome
- Developing API (current working on it)
- Helping to keep anime data updated
- Using other APIs to help us generating our json data
- Developing bots/crawlers to get anime data from other sites
- Writing scripts to update
mongodb
from json files - Helping to write tests
- Making suggestions / opening Issues
- Using it at other projects
Note: All anime data is going to be versioned here as
.json
. This will help us to check for data updates at pull requests, and will make sure all data is Open-Source and belongs to community.
Make sure you have Node.js and MongoDB installed.
Then
# Clone this repo
git clone https://github.com/jieverson/animeapi.git
# Go into the repo
cd animeapi
# Make sure you have some global packages
npm install -g grunt-cli
npm install -g nodemon
# Install dependencies
npm install
# Run mongodb
mongod
# Run server at localhost
nodemon
Note: We use NoDemon instead of node for running or server, 'cause it will make your life a lot easier by automatically restarting your node application when files change.
This project uses grunt for running jshint
and nodeunit
.
# Grunt default task is going to execute jshint and nodeunit
grunt
This bots are scripts that can be used to access other APIs to download data/images, populating MongoDB from our .json
files or even crawling websites.
cd bots
node [file_name].js
[EDIT] Phantom.js is not been used here anymore. Maybe in the future.