raml-org/raml-php-parser

此包已 废弃 且不再维护。未建议替代包。

一个用 PHP 编写的 RAML 解析器

v4.8.1 2022-05-10 15:58 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