Skip to content

vitormattos/blueprint-sdk-maker

Repository files navigation

Build Status Coverage Status PHPStan Latest Stable Version Minimum PHP Version License

API Blueprint Parser

API Blueprint is a powerful high-level API description language for web APIs.

Through that's project it's possible parse .apib files, get all their properties and generate all files needed to push a new SDK.

How do I get started?

NOTE: Blueprint SDK Maker depends on the Drafter library. Please see that repo for build instructions.

To generate standalone phar file, set the following in your php.ini:

; http://php.net/phar.readonly
phar.readonly = Off

If you don't need generate phar, run Blueprint SDK Maker using the option --no-phar.

As a phar (Recommended)

Download the latest phar here.

You should put it anywhere that facilitates its accessibility (such /usr/local/bin) and chmod should be 755. You can even rename it to just the box to avoid having to type the .phar extension every time.

Parsing .apib files

Run the follow command replacing <filename.apib> by your .apib file. The default output of this command is a directory called build containing the source of your SDK and a phar (api.phar) to use your SDK standalone.

blueprint-sdk-maker make <filename.apib>

Example of using generated SDK

From phar file

Create file called test.php into same directory of api.phar and run test.php

<?php
use BlueprintSdk\Core\Api;

require 'api.phar';
$api = new Api();
$return = $api->Entity->getYourEndpoint('ARGUMENT-X');
var_dump($return);

From composer file

Add the content of the follow composer.json file into composer.json file of your project replacing <YourGithubAccout> and <TheProjectName> for your data and run composer install.

{
    "require" : {
        "<YourGithubAccout>/<TheProjectName>" : "dev-master"
    },
    "repositories" : [{
            "type" : "vcs",
            "url" : "https://github.com/<YourGithubAccout>/<TheProjectName>"
        }
    ]
}

Contributing

If you are interested in fixing issues and contributing directly to the code base, please see the document How to Contribute,

License

Licensed under the MIT License.