cozylife/php-raml-parser

PHP编写的RAML解析器

1.0.0 2015-03-26 06:40 UTC

README

将RAML文件解析为PHP对象。

在此处查看RAML规范:https://github.com/raml-org/raml-spec

此分支的差异

PHP RAML解析器的原始版本将每个安全调用的调用数据与主请求合并。这在请求OAuth令牌等情况下会带来不必要的开销,并可能产生意外的副作用。此分支通过保持所有调用独立来解决这个问题。

了解更多关于为什么在基于API建模语言进行调用时此更改至关重要

开始使用

要求

composer install --dev
./vendor/bin/phpunit test
$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('test/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

贡献

./vendor/bin/phpunit
./vendor/bin/phpunit --coverage-text
./vendor/bin/phpcs --standard=PSR1,PSR2 src

待办事项

  • 文档/Markdown解析器
  • 日期表示?
  • 在提供的URL上解析RAML

支持(我相信)

  • 包含
    • .yml/.yaml
    • .raml/.rml
    • .json(使用json-schema解析)
  • 显示名称
  • 特质
  • 资源类型