ado-dg / integration-model-generator
一个允许您从JSON对象生成PHP模型类,并使用这些模型简化API集成的包
dev-main
2021-06-05 17:54 UTC
Requires
- wol-soft/php-json-schema-model-generator: dev-master
This package is not auto-updated.
Last update: 2024-09-22 08:27:36 UTC
README
从JSON对象生成PHP模型类,用于API请求,使用wol-soft的php generator (https://github.com/wol-soft/php-json-schema-model-generator)。
目录
动机
此库是作为学士论文的一部分制作的,其目标是提高API集成的效率。这是通过为开发者提供生成API JSON主体的PHP模型的可能性来实现的。此库是一个正在进行的项目。
安装
推荐通过Composer安装integration-model-generator。
$ composer require ado-dg/integration-model-generator
基本用法
第一步是准备您的JSON,模型中需要动态的每个字段都需要在%字符之间设置其值
{ "name": "%name%" }
然后,生成器需要使用以下参数初始化
- namespace: 要生成的模型的目标命名空间
- model path: 要生成的模型的目标目录,如果不存在将创建,如果存在将清除
- schema path: 存储由wol-soft的库所需的JSON模式的目录,如果不存在将创建
最后,可以通过调用生成器对象的"generateIntegrationModels"方法来进行生成。这需要以下参数
- json: 要转换为模型类的JSON主体
- model name: 要生成的模型类的名称(文件名和类名)
示例
以下示例是为Azure TTS API所需的JSON主体制作的。
JSON
{ "documents": [ { "id": 1, "text": "%text%" } ] }
生成对应JSON的模型类的PHP代码
use ado_dg\IntegrationModelGenerator\Generator; // Autoload files using the Composer autoloader. require_once __DIR__ . '/../../vendor/autoload.php'; $json = file_get_contents(__DIR__ . '/../../storage/azure.json'); $generator = new Generator('App\Models\IntegrationModels', __DIR__ . '/../Models/IntegrationModels', __DIR__ . '/../schema'); $generator->generateIntegrationModels($json, 'AzureJsonBody');
现在模型类已生成,可以如下使用
$body = new App\Models\IntegrationModels\TestJsonBody(["text" => "This is a test sentence"]); $json = $body->jsonSerialize();
json变量现在可以作为JSON主体传递给HTTP客户端