Skip to content
ūüĎĽ Static Pok√©mon API containing all core games data
PHP Shell Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin
config
public
src
tests
.dockerignore
.editorconfig
.env
.env.dist
.env.test
.gitattributes
.gitignore
.npmignore
.travis.yml
Dockerfile
LICENSE
Makefile
README.md
TODO.md
composer.json
composer.lock
package.json
phpunit.xml.dist
symfony.lock

README.md

PokéData - Static Pokémon API

logo

ūüĎĽ Static Pok√©mon API containing all core games data.

Build Status

Table of Contents

PokéData is a static Pokémon API, based on the Veekun Pokédex project, the same data source of PokéAPI.

The main difference, apart from the simplified API format (less calls are needed for getting more info), is that the PokéData API doesn't need a server to work and can be served offline, since it is based purely on static JSON files structured directories similar to RESTFul naming patterns. This is perfect for single-page static webapps capable of working offline or for any kind of project that doesn't want to rely on an external API server.

Features

  • Static API based on JSON files
  • Veekun Pok√©dex support as data source
  • Intuitive and optimized API schema
  • Embedded icon sprites for Pok√©mon and Items (the API provides base64 encoded images)
  • API documentation based on the Open API 3.0 specification
  • Docker builds for every release

Installation

You can download the generated static API files or install the project following one of the next options.

Development Setup

If you want to contribute to this project, you will need these requirements in your computer:

  • MacOS or Linux
  • PHP 7.3+
  • Composer
  • Docker
  • make
  • gettext or gettext-base (needed for envsubst)

Cloning the project and setting up the environment:

git clone https://github.com/capsulemonsters/pokedata.git
cd pokedata
src/Resources/scripts/install.sh

After the project is installed, the build scripts can be used to generate the API. The most important ones are:

  • src/Resources/scripts/build-api.sh: Builds the API under the build/api directory.
  • src/Resources/scripts/build-api-docs.sh: Builds the API docs under the build/docs directory.
  • src/Resources/scripts/build-src-yaml.sh: Builds the YAML files under the src/Recources/data directory.

There are also other scripts under the src/Recources/scripts directory, but they are mainly used by Travis CI and other scripts, so most of the time there is no need to call them manually.

You can also run make locally to generate the API, the API docs and the pokedata-api docker image, which provides a container with the generated API, served with nginx.

Docker Container

Optionally, you also have the option to consume the API with a ready-to use Docker container, which already contains the generated API and it is served with nginx.

The API will be found under the /api base URL, while the docs under /docs, just like in the official project site.

To start a new API instance simply run docker run -d itsjavi/pokedata-api. You can check the list of available builds in Docker Hub. The docker image versions always match the project semver tags.

NPM

The generated API is also available as NPM package and can be installed using npm i pokedata.

Roadmap

Apart from the current TO-DO's list, these are some of the goals of this project:

  • Timecapsule for consulting data of past and future generations.
  • Static Pok√©mon API using JSON files and the Open API (Swagger) spec.
  • Markdown-based Pok√©dex reference pages, to have an offline Pok√©dex that can be used anytime.
  • CSS Sprite-sheet for all icons of Pok√©mon and items.
  • Use YAML for adding/removing/editing data instead of complicated table structures, so new data can be added easier without depending on external data sources.
  • Bring consistency to the different popular Pok√©mon projects and make them interoperable using common identifiers (e.g.: veekun, showdown, smogon).
  • Become a standard resource for building any kind of fan-made Pok√©mon project, to keep inter-compatibility.
  • Support for Smogon and Showdown identifiers.
  • Port of Pok√©mon Showdown data e.g.: pokemon changelog through generations, move effects, pokemon tiers, pokemon movesets, etc.
  • Add Pok√©mon GO data (pokemon stats and moves).
  • Add Pok√©mon Let's GO Pikachu/Eevee data.
  • Add Pok√©mon Sword and Shield data (starting from December 2019).

Links

License

This software is copyrighted and licensed under the MIT license.

Disclaimer

This software comes bundled with data and graphics extracted from the Pokémon series of video games. Some terminology from the Pokémon franchise is also necessarily used within the software itself. This is all the intellectual property of Nintendo, Creatures, inc., and GAME FREAK, inc. and is protected by various copyrights and trademarks.

The authors believe that the use of this intellectual property for a fan reference is covered by fair use and that the software is significantly impaired without said property included. Any use of this copyrighted property is at your own legal risk.

This software is not affiliated in any way with Nintendo, Pokémon or any other game company.

A complete revision history of this software is available from https://github.com/capsulemonsters/pokedata

You can’t perform that action at this time.