pokeapi/README.md
2016-03-05 08:26:51 +00:00

153 lines
3.4 KiB
Markdown
Executable file

# PokeAPI
A RESTful API for Pokemon
LICENSE: BSD
http://pokeapi.co
## DEPRECATION
Quite a lot of data is missing from the V1 API.
**As of January 2015, no new data will be added to the v1 API, you will have to use the V2 API instead.**
See [This blog post for more information](http://phalt.co/if-you-have-data-they-will-consume-it).
## Setup
- Download this source code into a working directory.
- Install the requirements using pip:
```
$ make install
```
This will install all the required packages and libraries for using PokeAPI
- Set up the local developer environment using the following command:
```
$ make setup
```
- Run the server using the following command::
```
$ make serve
```
Visit localhost:8000 to see the running website!
If you ever need to wipe the database use this command:
```
$ make wipe_db
```
## V1 Database setup
Start Django shell
```
$ python manage.py shell --settings=config.local
```
import build functions
```
$ from data.v1.build import *
```
run the functions in order to populate v1 tables
```
$ build_pokes()
$ build_abilities()
$ build moves()
etc...
```
## V2 Database setup
Start Django shell
```
$ python manage.py shell --settings=config.local
```
run the build script with
```
$ from data.v2.build import build_all
$ build_all()
```
Each time the build script is run it will iterate over each table in the database, wipe it and rewrite each row using the data found in data/v2/csv.
When building against sqlite we've heard it can take a ridiculously long time to finish building out the database. In this case you can set up just the portions of the db that you need.
```
$ from data.v2.build import *
$ build_languages()
$ build_abilities()
...
```
Heres a list of the data building functions
- build_languages()
- build_regions()
- build_generations()
- build_versions()
- build_stats()
- build_damage_classes()
- build_abilities()
- build_characteristics()
- build_egg_groups()
- build_growth_rates()
- build_items()
- build_types()
- build_contests()
- build_moves()
- build_berries()
- build_natures()
- build_genders()
- build_experiences()
- build_machines()
- build_evolutions()
- build_pokedexes()
- build_locations()
- build_pokemons()
- build_encounters()
- build_pal_parks()
## Docker
The application can be built and run as a Docker container for easy deployments
From the root directory of the cloned repo
```
docker build -t pokeapi .
```
Run the container on host port 8000
```
docker run -d -p 8000:8000 pokeapi
```
## Contributing
All contributions are welcome: bug fixes, data contributions, recommendations.
Please see the [issues on GitHub](https://github.com/phalt/pokeapi/issues) before you submit a pull request or raise an issue, someone else might have beat you to it.
To contribute to this repository:
- [Fork the project to your own GitHub profile](https://help.github.com/articles/fork-a-repo/)
- Download the project using git clone:
```
git clone git@github.com:<YOUR_USERNAME>/pokeapi.git
```
- Create a new branch with a descriptive name:
```
git checkout -b my_new_branch
```
- Write some code, fix something, and add a test to prove that it works. **No pull request will be accepted without tests passing, or without new tests if new features are added.**
- Commit your code and push it to GitHub
- [Open a new pull request](https://help.github.com/articles/creating-a-pull-request/) and describe the changes you have made.
- We'll accept your changes after review.
Simple!