Skip to content

Kelmatou/riot-api-libraries

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

95 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Public Libraries for the Riot Games API

Table of Contents

  1. Introduction
  2. How It Works
  3. I Want to Include My Library!
  4. My Library's Information is Wrong/Outdated
  5. Troubleshooting
  6. Future Work

Introduction

This repository is the home of the configuration files that power the Public Libraries for the Riot Games API article on the Riot Games API Discussion Boards.

The aim of this repository is to provide a semi-automated, centralized way for 3rd Party Library Creators to manage the exposure of their libraries on the Riot Games API Discussion Boards.

How It Works

Directory Structure

The libraries directory contains language-specific subdirectories. Within these sub-directories are JSON files that contain library configurations.

The filename is the name of the repository, lowercased and with all non-alphanumeric characters removed.. If the filename already exists (aka there's another library with the same name), simply add a number to the end of your filename (e.g. lolfakejavalib1.json).

Example

For a Java library called LoL-Fake-Java-Lib, it's configuration would live at libraries/java/lolfakejavalib.json

File Structure

Each JSON file should consist of a single RepoObject JSON object with the following properties:

RepoObject

  • owner [string] - The GitHub account that owns the repository
  • repo [string] - The name of the repository
  • description [string] (Optional) - A description of the library. If omitted, the repository description will be used instead
  • language [string] - The programming language of the library
  • links [array] - An array of RepoLink objects
  • metadata [object] - An object containing metadata on the library.
  • tags [array] - An array of strings indicating which features are supported by the library. This array can contain any tags, but only the following are currently used:
    • v3 - Include if the library supports v3 of the Riot Games API
    • rate-limiting - Include if the library natively handles rate limiting headers from the Riot Games API

RepoLink

  • name [string] - The display name of the link
  • url [string] - The URL of the link

Example

lolfakejavalib.json

{
    "owner": "WxWatch",
    "repo": "LoL-Fake-Java-Lib",
    "description": "This is a fake Java library for the Riot Games API",
    "language": "Java",
    "links": [
        {
            "name": "Documentation",
            "url": "https://github.com/WxWatch"
        }
    ],
    "metadata": {
        "version": "1.2.0"
    },
    "tags": [
        "v3",
        "rate-limiting"
    ]
}

I Want to Include My Library!

Awesome! Simply create a Pull Request that adds a file with your library's configuration to the appropriate folder (if your language's folder isn't there, feel free to create it!). Once we verify that everything is correct, we'll merge it in and you're all set!

My Library's Information is Wrong/Outdated

It's simple to fix! Simply create a Pull Request that updates the configuration file for your library. Once we verify that everything is correct, we'll merge it in and you're all set!

Troubleshooting

For any specific issues / feature requests, you can create a Github Issue or reach out to WxWatch on the Riot API Community Discord

Future Improvements/Suggestions

  • With the upcoming deprecation of pre-v3 APIs, a way for libraries to be marked as supporting v3 . Done!
  • Remove the language property and have the updater rely on the directory name to know the language.
  • A more robust way to show what APIs a library supports
  • A way for libraries to show any additional features it may have (rate limiter, etc.)
  • Support for libraries not hosted on Github

About

Master Repo for managing the "Public Libraries for the Riot Games API" article

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%