All Projects → jamesmcfadden → Binding Of Isaac Api

jamesmcfadden / Binding Of Isaac Api

Licence: bsd-3-clause
A RESTful API for the Binding of Isaac game series

Projects that are alternatives of or similar to Binding Of Isaac Api

Laravel Woocommerce
WooCommerce Rest API for Laravel
Stars: ✭ 86 (+681.82%)
Mutual labels:  api, rest-api, laravel
Laravel Hateoas
Expose the authorization logic of your REST API using HATEOAS links
Stars: ✭ 116 (+954.55%)
Mutual labels:  api, rest-api, laravel
Api Restful Con Laravel Guia Definitiva
Repositorio para el código base del curso "API RESTful con Laravel - Guía Definitiva"
Stars: ✭ 95 (+763.64%)
Mutual labels:  api, rest-api, laravel
Laravel Compass
A REST client inside your Laravel app
Stars: ✭ 1,002 (+9009.09%)
Mutual labels:  api, rest-api, laravel
Jikan Rest
The REST API for Jikan
Stars: ✭ 200 (+1718.18%)
Mutual labels:  api, rest-api, laravel
Overwatch Api
A RESTful API for the Overwatch Game
Stars: ✭ 112 (+918.18%)
Mutual labels:  api, rest-api, laravel
Laravel Api Boilerplate
A Boilerplate Project For Laravel API's (NOT MAINTAINED)
Stars: ✭ 113 (+927.27%)
Mutual labels:  api, rest-api, laravel
Laravel Api Handler
Package providing helper functions for a Laravel REST-API
Stars: ✭ 150 (+1263.64%)
Mutual labels:  api, rest-api, laravel
Lumen Microservice
Lumen on Docker - Skeleton project with Nginx, MySQL & PHP 7 | Aws ECS, Google Kubernates, Azure Container Engine
Stars: ✭ 183 (+1563.64%)
Mutual labels:  api, rest-api, laravel
Restful Api With Laravel Definitive Guide
Repository with the base code for the course "RESTful API with Laravel - Definitive-Guide"
Stars: ✭ 156 (+1318.18%)
Mutual labels:  api, rest-api, laravel
Laravel Api Response Builder
Builds nice, normalized and easy to consume Laravel REST API JSON responses.
Stars: ✭ 433 (+3836.36%)
Mutual labels:  api, rest-api, laravel
Larapi
An API-friendly fork of Laravel. Authentication, error handling, resource filtering, sorting, pagination and much more included
Stars: ✭ 397 (+3509.09%)
Mutual labels:  api, rest-api, laravel
Laravel Orion
The simplest way to create REST API with Laravel
Stars: ✭ 481 (+4272.73%)
Mutual labels:  api, rest-api, laravel
Networking
⚡️ Elegantly connect to a REST JSON Api. URLSession + Combine + Decodable + Generics = <3
Stars: ✭ 499 (+4436.36%)
Mutual labels:  api, rest-api
Restful Api Specification
RESTful API 设计规范
Stars: ✭ 498 (+4427.27%)
Mutual labels:  api, laravel
Notykt
📒 NotyKT is a complete 💎Kotlin-stack (Backend + Android) 📱 application built to demonstrate the use of Modern development tools with best practices implementation🦸.
Stars: ✭ 543 (+4836.36%)
Mutual labels:  api, rest-api
Ecommerce Open Api
果酱小店:基于 Laravel + swoole + 小程序的开源电商系统,优雅与性能兼顾 : )
Stars: ✭ 546 (+4863.64%)
Mutual labels:  api, laravel
Cms
Decoupled CMS for any Laravel app, gain control of: pages, blogs, galleries, events, images, custom modules and more.
Stars: ✭ 498 (+4427.27%)
Mutual labels:  api, laravel
Rick And Morty Api
The Rick and Morty API
Stars: ✭ 542 (+4827.27%)
Mutual labels:  api, rest-api
Spyke
Interact with REST services in an ActiveRecord-like manner
Stars: ✭ 591 (+5272.73%)
Mutual labels:  api, rest-api

The Binding of Isaac RESTful API

Build Status

The Binding of Isaac API is a project aiming to make available as much data about the Binding of Isaac game series as possible.

The current release can be found at isaac.jamesmcfadden.co.uk/api/v1. Note that the API is still in early development, so changes to the data may happen regularly.

> curl https://isaac.jamesmcfadden.co.uk/api/v1/item/2JrEs
{
  "id": "2JrEs",
  "name": "Pentagram",
  "url": "https://isaac.jamesmcfadden.co.uk/api/v1/item/2JrEs"
}

Documentation

Documentation can be found at docs.bindingofisaac.apiary.io (source).

Contributing

Contribution is both welcome and encouraged! Please submit a pull request if you'd like to add features or fixes to either the API data or the source code itself.

Source Code Contribution

The API is written in PHP, and uses the Laravel framework, which is easy to use. Check composer.json for the version in use.

Installation

It is recommended you run the API in Laravel Homestead, as this will take care of the necessary system dependencies and server configuration (as well as ensure you're running PHP >= 7.0).

After forking and cloning the repository, setup your configuration file:

cd path/to/binding-of-isaac-api
cp .env.example .env
php artisan key:generate

Install (if required) and run composer to install necessary dependencies:

composer install

Install the database:

php artisan migrate

Import the data to the database:

php artisan import

After modifying the data files, you'll need to refresh the database and re-import to see your changes. Note that this will completely wipe the database and import the data fresh:

php artisan migrate:refresh && php artisan import

Tests

The test suite uses PHPUnit and can be run from the project root with:

vendor/bin/phpunit

Data Contribution

The data files use CSV and can be found in the data directory. Each file represents a database table.

Please use the following format:

  • Filenames must match the database table name;
  • Data files are headed with the associated database column names;
  • Records are separated with a newline character;
  • Fields are separated with by a comma (,);
  • Text fields with a comma inside should be enclosed in quotes (");
  • Text fields with quotes inside should be escaped with another quote (");
  • Empty fields are treated as null

Example:

id,name,description,optional_data,order
1,Record One,"This is some text, with a comma",,1
2,Record Two,"This is some text with ""quotes"" within",,2

Data Identifiers

The project makes use of string identifiers as opposed to incremental integers. This keeps the data files flexible and eliminates the urge to order numerical identifiers, making maintenance easier and minimising the risk of foreign key constraint violations.

You may run the following command in the project root to generate as many identifiers as you require:

php artisan generate-ids 10

Note that the identifiers generated are only unique for the current command - there is a small chance the identifier is already in use in an existing data file, but MySQL will let you know if there is upon importing. All identifiers should have a character length of 5.

License

View the license file here.

Disclaimer

This is a fan-driven open source project and is not in any way affiliated with any proprietor of the Binding of Isaac video game series.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].