hendrikmaus/reynaldo

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# Reynaldo
Turn API Blueprint Refract Parse Result (Drafter's output) into a traversable PHP data structure.

[![codecov.io](http://codecov.io/github/hendrikmaus/reynaldo/coverage.svg?branch=master)](http://codecov.io/github/hendrikmaus/reynaldo?branch=master)
[![Code Climate](https://img.shields.io/codeclimate/github/kabisaict/flow.svg)](https://codeclimate.com/github/hendrikmaus/reynaldo)

## What is Reynaldo?

It should ease the processing of [Drafter](https://github.com/apiaryio/drafter) refract output.

You read your Drafter parse result, either JSON or YAML, you convert that to a PHP assoc array,
e.g. `json_decode($parseresult, true)` in PHP and pass it into `\Hmaus\Reynaldo\Parser\RefractParser::parse`.

Out comes an easily traversable object.

You can find a little example in `/example`.

```php
// load file and json_decode as assoc array into $apiDescription

$parser = new RefractParser();
$parseResult = $parser->parse($apiDescription);
$api = $parseResult->getApi();

// try to get the API title `$api->getApiTitle();`
// or the document description in markdown `$api->getApiDocumentDescription();`

foreach ($parseResult->getApi()->getResourceGroups() as $apiResourceGroup) {

    foreach ($apiResourceGroup->getResources() as $apiResource) {
    
        foreach ($apiResource->getTransitions() as $apiStateTransition) {
        
            foreach ($apiStateTransition->getHttpTransactions() as $apiHttpTransaction) {
                // inspect `$apiHttpTransaction->getHttpRequest()`, `$apiHttpTransaction->getHttpResponse()`
            }
        }
    }
}
```

## Requirements

* PHP 7.0 or greater

## Installation

The recommended way to install is by using [composer](https://getcomposer.org):

```bash
$ composer require hmaus/reynaldo
```

This will install the PHP package with your application.  

## License

Reynaldo is licensed under the MIT License - see the 
[LICENSE](https://github.com/hendrikmaus/reynaldo/blob/master/LICENSE) file for details.