arthurkushman/raml-php-parser

用PHP编写的RAML解析器

v4.8.0 2021-10-07 13:46 UTC

README

Build Status Coverage Status Latest Stable Version Total Downloads

查看RAML规范

RAML 0.8 支持

要支持RAML 0.8,请遵循第2版。

RAML 1.0 支持

要支持RAML 1.0,请遵循第3版或更高版本。RAML 1.0的支持仍在进行中。

已完成的工作和应正常工作

  • RAML 1.0的部分 类型表达式
  • 枚举
  • 联合类型表达式("or" | 操作符)
  • 类型数组
  • discriminatordiscriminatorValue 特性
  • 特质继承

待实现

入门

要求

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

$title = $apiDef->getTitle();

解析架构

该库可以将架构转换为验证对象。有一个默认列表,或者可以手动配置。每个架构解析器需要符合 Raml\Schema\SchemaParserInterface 并返回一个 Raml\Schema\SchemaDefinitionInterface 的实例。

可以创建额外的解析器和架构定义,并将它们传递给 Raml\Parser 构造函数

导出路由

也可以将整个RAML文件导出到端点的数组中。例如,考虑一个基本的RAML,可以使用以下方式返回

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

$routes = $api->getResourcesAsUri();

返回

[
    GET /songs => ...
    POST /songs => ...
    GET /songs/{songId} => ...
    DELETE /songs/{songId} => ...
]

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

路由格式化程序

该包包含两个路由格式化程序

  • NoRouteFormatter 不做任何事情,只是简单地回显结果
  • SymfonyRouteFormatter 将路由添加到Symfony RouteCollection

贡献

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