Need help with raml-php-parser?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

raml-org
196 Stars 76 Forks MIT License 413 Commits 7 Opened issues

Description

Community-maintained RAML parser for php

Services available

!
?

Need anything else?

Contributors list

Build Status Coverage Status Latest Stable Version Total Downloads

See the RAML specification.

RAML 0.8 Support

For RAML 0.8 support follow version 2.

RAML 1.0 Support

For RAML 1.0 support follow version 3 or above. RAML 1.0 support is still work in progress.

What is done and should work: - Part of RAML 1.0 type expressions - Enums - Union type expression (the "or"

|
operator) - Array of types -
discriminator
and
discriminatorValue
facets - Traits inheritance

To be implemented: - Libraries - User defined facets - Full implementation of type expressions - The shorthand array and the union type have been implemented - Bi-dimensional array and the array-union combination have NOT been implemented yet. - Multiple inheritance - Annotations - Overlays and Extensions - Improved Security Schemes

Get started

Requires:

composer require raml-org/raml-php-parser
$parser = new \Raml\Parser();
$apiDef = $parser->parse($filename, true);

$title = $apiDef->getTitle();

Parsing schemas

The library can convert schemas into an validation object. There is a default list, or they can be configured manually. Each schema parser needs to conform to

Raml\Schema\SchemaParserInterface
and will return a instance of
Raml\Schema\SchemaDefinitionInterface
.

Additional parsers and schema definitions can be created and passed into the

Raml\Parser
constructor

Exporting routes

It is also possible to export the entire RAML file to an array of the full endpoints. For example, considering a basic RAML, this can be returned using:

$parser = new \Raml\Parser();
$api = $parser->parse('tests/fixture/simple.raml');

$routes = $api->getResourcesAsUri();

To return: ```php [ GET /songs => ... POST /songs => ... GET /songs/{songId} => ... DELETE /songs/{songId} => ... ]

$routes = $api->getResourcesAsUri(new \Raml\RouteFormatter\NoRouteFormatter()); ```

Route Formatters

There are two Route Formatters included in the package:

  • NoRouteFormatter
    which does nothing and simply echoes the result
  • SymfonyRouteFormatter
    which adds the routes to a Symfony
    RouteCollection

Contributing

composer run-static-analysis
composer check-code-style
composer run-tests

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.