reliv/pipe-rat-2
Composer 安装命令:
composer require reliv/pipe-rat-2
包简介
Create REST APIs with just a few lines of Expressive config. This PSR7 compliant PHP library that uses Zend Expressive Middleware at its core.
README 文档
README
Create REST APIs with just a few lines of Expressive config. This PSR7 compliant PHP library that uses Zend\Expressive Middleware config at its core.
- Allows creation of API end points using only config for Doctrine entities
- Allows configuration of common API concerns:
- data-extractor - Getting arrays from data objects and object arrays
- data-hydrator - Getting data from client into data objects and arrays
- data-validate - Validating data from client
- repository - Common repository methods
- request-attributes - Common query params ('where', 'fields', 'limit', 'order', 'skip', etc...)
- request-attributes-validate - Validate the params
- request-format - Data format parsing the request data
- response-format - Data format for response (JSON, etc...)
- response-headers - Common headers for response (caching etc...)
Config example
'routes' => [ /* Put your path here */ 'my.thing.find' => [ /* Use standard route names for client simplicity */ 'name' => 'my.thing.find', /* Use standard route paths for client simplicity */ 'path' => 'my/thing', /* Wire each API independently */ 'middleware' => [ RequestFormat::configKey() => RequestFormat::class, RequestAcl::configKey() => RequestAcl::class, RequestAttributes::configKey() => RequestAttributes::class, RequestAttributesValidate::configKey() => RequestAttributesValidate::class, /** <response-mutators> */ ResponseHeaders::configKey() => ResponseHeaders::class, ResponseFormat::configKey() => ResponseFormat::class, ResponseDataExtractor::configKey() => ResponseDataExtractor::class, /** </response-mutators> */ RepositoryFind::configKey() => RepositoryFind::class, ], /* Use route to find options at runtime */ 'options' => [ RequestFormat::configKey() => [ RequestFormat::OPTION_SERVICE_NAME => WithParsedBodyJson::class, RequestFormat::OPTION_SERVICE_OPTIONS => [], ], RequestAcl::configKey() => [ RequestAcl::OPTION_SERVICE_NAME => IsAllowedNotConfigured::class, RequestAcl::OPTION_SERVICE_OPTIONS => [ IsAllowedNotConfigured::OPTION_MESSAGE => IsAllowedNotConfigured::DEFAULT_MESSAGE . ' for pipe-rat-2 resource: "{pipe-rat-2-config.resource-name}"' . ' in file: "{pipe-rat-2-config.source-config-file}"', ], ], RequestAttributes::configKey() => [ RequestAttributes::OPTION_SERVICE_NAMES => [ WithRequestAttributeFields::class => WithRequestAttributeUrlEncodedFields::class, WithRequestAttributeAllowedFieldConfig::class => WithRequestAttributeAllowedFieldConfigFromOptions::class, WithRequestAttributeExtractorFieldConfig::class => WithRequestAttributeExtractorFieldConfigByRequestFields::class, WithRequestAttributeWhere::class => WithRequestAttributeUrlEncodedWhere::class, WithRequestAttributeWhereMutator::class => WithRequestAttributeWhereMutatorNoop::class, WithRequestAttributeOrder::class => WithRequestAttributeUrlEncodedOrder::class, WithRequestAttributeSkip::class => WithRequestAttributeUrlEncodedSkip::class, WithRequestAttributeLimit::class => WithRequestAttributeUrlEncodedLimit::class, ], RequestAttributes::OPTION_SERVICE_NAMES_OPTIONS => [ WithRequestAttributeAllowedFieldConfig::class => [ WithRequestAttributeAllowedFieldConfigFromOptions::OPTION_ALLOWED_FIELDS /* @todo Over-ride with YOUR FieldsConfig */ => [ FieldConfig::KEY_TYPE => FieldConfig::COLLECTION, FieldConfig::KEY_PROPERTIES => [], FieldConfig::KEY_INCLUDE => true, ], ] ], ], RequestAttributesValidate::configKey() => [ RequestAttributesValidate::OPTION_SERVICE_NAME => WithRequestValidAttributesAsserts::class, ], /** <response-mutators> */ ResponseHeaders::configKey() => [ ResponseHeaders::OPTION_SERVICE_NAME => WithResponseHeadersAdded::class, ResponseHeaders::OPTION_SERVICE_OPTIONS => [ WithResponseHeadersAdded::OPTION_HEADERS => [] ], ], ResponseFormat::configKey() => [ ResponseFormat::OPTION_SERVICE_NAME => WithFormattedResponseJson::class, ResponseFormat::OPTION_SERVICE_OPTIONS => [], ], ResponseDataExtractor::configKey() => [ ResponseDataExtractor::OPTION_SERVICE_NAME => ExtractByType::class, ], /** </response-mutators> */ RepositoryFind::configKey() => [ RepositoryFind::OPTION_SERVICE_NAME => FindNotConfigured::class, RepositoryFind::OPTION_SERVICE_OPTIONS => [ FindNotConfigured::OPTION_MESSAGE => FindNotConfigured::DEFAULT_MESSAGE . ' for pipe-rat-2 resource: "{pipe-rat-2-config.resource-name}"' . ' in file: "{pipe-rat-2-config.source-config-file}"', ], ], ], /* Use to define allowed methods */ 'allowed_methods' => ['GET'], ], ],
reliv/pipe-rat-2 适用场景与选型建议
reliv/pipe-rat-2 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 322 次下载、GitHub Stars 达 0, 最近一次更新时间为 2017 年 10 月 09 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「rest」 「api」 「zend」 「module」 「middleware」 「reliv」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 reliv/pipe-rat-2 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 reliv/pipe-rat-2 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 reliv/pipe-rat-2 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Polyfill for mb_ereg(), mb_eregi(), mb_ereg_match(), and mb_ereg_replace*() functions; primary use case is for mbstring on Windows 7.4+
A PSR-7 compatible library for making CRUD API endpoints
Api bundle
Zend Framework 1 Http package
Zend Framework 1 Soap package
Simple asset loading
统计信息
- 总下载量: 322
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2017-10-09