aboutsummaryrefslogtreecommitdiffstats

HEROES API

Make your Heroes API

Installation

Standar installation

heroeapi require of python packages and MongoDB for work.

After running your MongoDB set configuration:

Write .env file:

API_DEBUG=False
DB_NAME=heroes  # changeme
DB_HOST=127.0.0.1
DB_PORT=27017
DB_USER=root  # changeme
DB_PASS=example  # changeme
DB_AUTH=admin
JWT_SECRET_KEY=eo7aiHie4aeth4eteeho7ahC7yeetohsi7a  # changeme
USER_ENABLE_REGISTER=True
$ git clone https://c.hgit.ga/software/heroeapi.git
$ virtualenv -p python3 venv
$ pip install -r requirements.txt
$ python wsgi.py

Docker Compose

Set configuration file .env on heroeapi app and .db.env mongo database

Write .env:

# APP
API_DEBUG=False
DB_NAME=heroes  # changeme
DB_HOST=127.0.0.1
DB_PORT=27017
DB_USER=root
DB_PASS=example  # changeme
DB_AUTH=admin
JWT_SECRET_KEY=eo7aiHie4aeth4eteeho7ahC7yeetohsi7a  # changeme
USER_ENABLE_REGISTER=True

# GUNICORN
GUNICORN_TIMEOUT=30
GUNICORN_NUM_WORKERS=4

Write .db.env:

MONGO_INITDB_ROOT_USERNAME=root  # changeme
MONGO_INITDB_ROOT_PASSWORD=example  # changeme
MONGO_INITDB_DATABASE=admin

Write docker-compose.yml:

version: '3.5'

services:
  app:
    image: rusian/heroesapi
    container_name: heroeapi
    env_file: .env
    networks:
      - heroeapi
    ports:
      - "5000:5000"
    tty: true
    restart: "always"

  mongo:
    image: mongo:4.4.12-focal
    container_name: heroeapi_db
    networks:
      - heroeapi
    restart: always
    command: [--auth]
    env_file:
      - .db.env
    volumes:
      - ./heroeapi_db:/data/db
    ports:
      - "27017:27017"

networks:
  heroeapi:
    driver: bridge
$ docker-compose up -d

Generate image from build

$ docker build --tag rusian/heroesapi -f Dockerfile .

Usage

Check test directory for some examples. Remember that you must first create the user to be able to add a Hero

API References

Heroes

Reference Method Purpose
/api/v1/heroes GET Returns all information of the character.
/api/v1/heroes/:id GET Search by character id. Returns all information of the character.
/api/v1/heroes/:id POST Add of information of the character (only Admin)
/api/v1/heroes/:id DELETE Delete character by id (only Admin)
/api/v1/heroes/:id PUT Update character by id (only Admin)
/api/v1/heroes/:id/powerstats GET Returns JSON Array of all powerstats of given character.
/api/v1/heroes/:id/biography GET Returns JSON Array of character's biography.
/api/v1/heroes/:id/appearance GET Returns JSON Array of character's appearance.
/api/v1/heroes/:id/work GET Returns JSON Array of character's work i.e. occupation and operation base.
/api/v1/heroes/:id/connections GET Returns JSON Array of character's connections.
/api/v1/heroes/:id/image GET Returns image url of the character.
/api/v1/heroes/search/name GET Search character by name. Returns character id.
/api/v1/heroes/id/powerstats

This API call provides all powerstats for the given character. The powerstats are as follows:

  • Intelligence
  • Strength
  • Speed
  • Durability
  • Power
  • Combat
/api/v1/heroes/id/biography

This API call gives the biographical stats of the character. They are:

  • Full Name
  • Alter Egos
  • Aliases
  • Place of Birth
  • First Appearance
  • Publisher
  • Alignment
/api/v1/heroes/id/appearance

This API call provides the appearance of the character. The various statistics are :

  • Gender
  • Race
  • Height
  • Weight
  • Eye Color
  • Hair Color
/api/v1/heroes/id/work

This API lists the work/occupation of the character. They are:

  • Occupation
  • Base of operation
/api/v1/heroes/id/connections

This call lists out the connections of the character.

  • Group Affiliation
  • Relatives
/api/v1/heroes/id/image

This provides the image for the character, if exists.

  • image
/api/v1/heroes/search/name

This API call helps you in finding the character-id of a character by searching it's name.

Users

Reference Method Purpose
/api/v1/users GET Returns all information of users (only Admin)
/api/v1/users/:id GET Search by character id (only Admin)
/api/v1/users/:id POST Add of information of the user (only Admin)
/api/v1/users/:id DELETE Delete user by id (only Admin)
/api/v1/users/:id PUT Update user by id (only Admin)
/api/v1/auth/signup POST Create user
/api/v1/auth/token POST Generate Token

LICENSE

This work is licensed under the GNU GPLv3+