pokedatadeprecated

Static Pokémon API containing all core games data

Usage no npm install needed!

<script type="module">
  import pokedata from 'https://cdn.skypack.dev/pokedata';
</script>

README

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