cyberrebell / api-mapping-layer-gen
此包已被废弃,不再维护。未建议替代包。
用于生成API映射层的库
0.1.4
2018-03-21 14:42 UTC
Requires
- php: >=7.1
- symfony/yaml: ^3.3|^4.0
- zendframework/zend-code: ^3.3
Suggests
- hanibal4nothing/simple-collection: Collection framework
README
目的
基于给定API定义生成映射接口的库。
适用于需要处理已存在API或基于定义实现API的新消费者应用程序的初始设置。
支持输入定义
- OpenAPI
.yml
.json
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