fiasco/tabular-openapi

将 OpenAPI Schema 转换为关系表结构

dev-main 2023-10-12 00:57 UTC

This package is auto-updated.

Last update: 2024-09-12 03:05:14 UTC


README

将 OpenApi schema 对象存储在表格数据结构中。

这个库允许您将 OpenApi 架构映射到可以进一步转换为 CSV、SQL 或数据湖存储(例如 Domo)的表格。

安装

这个库依赖于 cebe/php-openapi,可以通过 composer 安装。

composer require fiasco/tabular-openapi

使用方法

加载架构

use Fiasco\TabularOpenapi\Schema;

$schema = new Schema('https://path/to/openapi-spec.json');

获取一个 OpenApi 架构组件来插入数据。

$table = $schema->getTable('Report');

将您的 OpenApi 兼容架构对象插入表格

$table->addRow($report);

遍历架构表格以发现表格中的数据。Tabular OpenApi 依赖 Symfony Console 的开发依赖项,因此您可以在测试期间将表格数据输出到控制台。

use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Console\Output\ConsoleOutput;
use Symfony\Component\Console\Style\SymfonyStyle;

$io = new SymfonyStyle(new ArgvInput(), new ConsoleOutput());

foreach ($schema->getTables() as $name => $table) {
    $io->title($name.': '.$table->getRowsTotal() . ' ('.$table->uuid.')');
    $rows = [];
    foreach ($table->fetchAll() as $row) {
        $rows[] = $row;
    }
    $headers = array_keys(reset($rows) ?: []);

    $io->table($headers, $rows);
    $io->text('----');
}