cyberrebell/api-mapping-layer-gen

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

用于生成API映射层的库

0.1.4 2018-03-21 14:42 UTC

This package is not auto-updated.

Last update: 2018-06-21 16:41:54 UTC


README

目的

基于给定API定义生成映射接口的库。

适用于需要处理已存在API或基于定义实现API的新消费者应用程序的初始设置。

支持输入定义

PHP

安装

$ composer require cyberrebell/api-mapping-layer-gen

用法

实体

<?php
require 'vendor/autoload.php';

use ApiMappingLayerGen\Mapper\OpenApi\Mapper;
use ApiMappingLayerGen\Generator\Php\EntityGenerator\Native;
use ApiMappingLayerGen\Generator\Php\EntityBuilder;

$file = '/path/to/api.yml';

$mapper = new Mapper($file);
$patterns = $mapper->getPatterns();

$entityBuilder = new EntityBuilder(new Native([
    'addDocblockTypes' => true,
    'addDocblockDescriptions' => false,
    'useFluentSetters' => false,
    'useSetterTypeHints' => true,
    'useGetterTypeHints' => true,
    'hideNullValues' => true
]));

$entityBuilder->buildEntities($patterns, 'App', 'src/App');

schema.json

<?php
require 'vendor/autoload.php';

use ApiMappingLayerGen\Mapper\OpenApi\Mapper;
use ApiMappingLayerGen\Generator\JsonSchema\JsonSchemaBuilder;
use ApiMappingLayerGen\Generator\JsonSchema\OpenApi\JsonSchemaGenerator;

$file = '/path/to/api.yml';

$mapper = new Mapper($file);
$definition = $mapper->getDefinition();

$jsonBuilder = new JsonSchemaBuilder(new JsonSchemaGenerator());
$jsonBuilder->buildSchemas($definition, __DIR__ . '/../docs/json');

支持输出格式

  • PHP
    • 本地
      • 创建 GeneratedEntites 包含映射层所需的所有功能
      • 创建 Entities 扩展 GeneratedEntities,可用于存储额外功能
      • 使用原生PHP数组而不是集合类,如
    • 基于集合
      • 与本地相同,但使用集合类并生成 Collections,可以扩展特定的筛选/搜索功能
  • json-schema (https://json-schema.fullstack.org.cn/)
    • 创建用于测试或验证目的的 schema.json 文件

许可证

MIT © Cyberrebell