GithubHelp home page GithubHelp logo

gadhagod / hyrule-compendium-api Goto Github PK

View Code? Open in Web Editor NEW
181.0 8.0 28.0 42.81 MB

An API serving data on all in-game items and regions in Breath of the Wild and Tears of the Kingdom.

Home Page: https://gadhagod.github.io/Hyrule-Compendium-API/#/

License: MIT License

Python 34.35% Shell 0.13% TypeScript 63.28% Procfile 0.02% SQL 2.22%
hyrule-compendium-api zelda botw breath-of-the-wild rockset hyrule-compendium tears-of-the-kingdom totk

hyrule-compendium-api's Introduction

Hyrule Compendium API

An API serving data on all in-game items and regions in Breath of the Wild and Tears of the Kingdom


Concept

The Hyrule compendium is an encyclopedia of all the in-game interactive items in the world of Hyrule. With this brilliant API, you can access its data and embed it into your own application.

You can see a specific item, all items in a category, or all data in our database. Here is an example request and response, retrieving data on the white-maned lynel:

$ curl https://botw-compendium.herokuapp.com/api/v3/entry/white-maned_lynel
{
    "data": {
        "name": "white-maned lynel",
        "id": 123,
        "category": "monsters",
        "description": "These fearsome monsters have lived in Hyrule since ancient times. Their ability to breathe fire makes White-Maned Lynels among the toughest of the species; each one of their attacks is an invitation to the grave. There are so few eyewitness accounts of this breed because a White-Maned Lynel is not one to let even simple passersby escape with their lives.",
        "common_locations":[
            "Hyrule Field",
            "Hebra Mountains"
        ]
        "drops": [
            "lynel horn",
            "lynel hoof",
            "lynel guts"
        ],
        "image": "https://botw-compendium.herokuapp.com/api/v2/entry/white-maned_lynel/image"
    }
}

To get started, check out the documentation.

Support and Suggestions

If you come across a malfunction or have any suggestions open an issue or a pull request.

Running locally

Instructions for running locally can be found [https://gadhagod.github.io/Hyrule-Compendium-API/#/self-hosting].

hyrule-compendium-api's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hyrule-compendium-api's Issues

Missing images

I know the images are in development so you may or may not be aware of these, but just wanted to point them out in case you weren't.

I came across 3 missing images:
https://botw-compendium.herokuapp.com/api/v2/entry/golden_bow/image
https://botw-compendium.herokuapp.com/api/v2/entry/golden_claymore/image
https://botw-compendium.herokuapp.com/api/v2/entry/luminous_ore_deposit/image

I also came across 1 broken image. The image is actually there and works just fine but the url in the entry has a typo:
https://botw-compendium.herokuapp.com/api/v2/entry/rare_or_deposit/image ('ore' is misspelled and is missing the 'e')

Golden Enemies

Hello, i'm sorry to bother you but i was simply wondering if the golden variants of the enemies would show up here, i have been searching for them and i cannot find them, are they simply not in the compendium in the main game? my apologies if so

V3 Roadmap

The new version of the Hyrule Compendium API will serve data on more than just the compendium entries. It will contain the following categories of data:

  • in-game compendium (/compendium)
  • geographical regions (/regions) (#29)
  • recipes (/recipes) (#27)

The goal is to make this API more than just the compendium; it should be able to give data on all (or many) aspects of the game, not just the in-game items.

Recipes

Recipes will be divided based on their base ingredient (e.g seafood). Multi-dimensional arrays will be used to represent possible ingredients to tackle the problem of substitutable ingredients.

Possible example recipe response:

{
  "name": "meat and rice bowl",
  "image": "https://botw-compendium.herokuapp.com/api/v3/recipes/recipe/meat-and-rice-bowl",
  "category": "meat",
  "hearts_recovered": 4.0, // hearts recovered from consumption
  "ingredients": [["raw meat", "raw bird drumstick"], ["rock salt"], ["hylian rice"]] // array of arrays, each inner array represents possible ingredients
  "effect": "attack", // enhancing effect of dish (empty if none)
  "duration": 60, // duration of effect in seconds (0 if no effect)
}

Map

Data on each region, including encompassed shrines and settlements, will be provided.

  • Breath of the Wild regions
  • Tears of the Kingdom regions

Compendium

  • The compendium entries will have a field dlc that specifies if it is a master-mode exclusive. The /master_mode endpoint will remain to avoid ID conflicts.
  • The food and non_food keys in the creatures category response will be removed. Each creature entry will have a boolean property edible instead.
  • /all(endpoint to get all entries) will not have keys for each category.
  • attack and defense keys of items of the equipment category will be nested in the properties key like so:
{
  // ...
  "properties": {
    "attack": 14,
     "defense": 0
  }
  • Tears of the Kingdom entries (by setting ?game=totk or ?game=2) (#36)
  • Tears of the Kingdom images

Code Changes

These changes will not affect the usage of the API. It will improve performance and clean up code.

  • Separate branches for API versions
  • Use Flask blueprints instead of Flask().add_url_rule
  • Improve queries to reduce API latency
    • Instead of executing multiple queries, using UNION is a better solution
  • Create staging app to test changes

Additional Tasks

  • Documentation

Feel free to chime in on this thread.

The creatures category returns non-creature content

I was looking around the dataset and I noticed that there is a lot of "non-creature" content returned by the creatures endpoint. For instance, you get stuff like "golden claymore" with id 262 in the non-food sub-category. I'm a bit confused about what your concept of a "creature" is within the domain of this API.

It also doesn't match the data in the creatures json file which only have 83 entries. Is this a bug?

Add images to API

Hope to add images to the API very soon. The entry endpoint will have an additional key, image, that has a URL of the image (hosted on the same heroku server). That URL will be /entry/<entry>/image, which will serve the image in a png of jpeg format.

Problems with the hyphen of "non-food"

When I do a request, I can't retrieve the data of an entry who is in the category "non-food". The hyphen in the category create errors. I don't know how to fix it. I'm using JavaScript.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.