ngabor84/lumen-api-query-parser
Composer 安装命令:
composer require ngabor84/lumen-api-query-parser
包简介
A query parser for REST-APIs based on laravel's lumen framework
关键字:
README 文档
README
Description
This is a simple request query parameter parser for REST-APIs based on Laravel's Lumen framework.
Requirements
- PHP >=7.1
- Lumen framework >= 5.4
- Mockery >= 0.9 (dev)
- PHPUnit >= 6.1 (dev)
- PHP CodeSniffer >= 3.0.0 RC4 (dev)
Installation
- Add ngabor84/lumen-api-query-parser to your composer.json and make composer update, or composer require ngabor84/lumen-api-query-parser ~1.0
- Setup the service provider:
in bootstrap/app.php add the following line:
$app->register(LumenApiQueryParser\Provider\RequestQueryParserProvider::class);
Usage
// app/API/V1/Models/UserController.php namespace App\Api\V1\Http\Controllers; use App\Api\V1\Models\User; use App\Api\V1\Transformers\UserTransformer; use LumenApiQueryParser\ResourceQueryParserTrait; use LumenApiQueryParser\BuilderParamsApplierTrait; class UserController extends Controller { use ResourceQueryParserTrait; use BuilderParamsApplierTrait; public function index(Request $request) { $params = $this->parseQueryParams($request); $query = User::query(); $userPaginator = $this->applyParams($query, $params); $this->response->paginator($userPaginator, new UserTransformer, ['key' => 'users']); } }
Query syntax
Eager loading
Q: /users?connection[]=profile
R: will return the collection of the users with their profiles included
Filtering
Q: /users?filter[]=name:ct:admin
R: will return the collection of the users whose names contains the admin string
Available filter options
| Operator | Description | Example |
|---|---|---|
| ct | String contains | name:ct:Peter |
| nct | String NOT contains | name:nct:Peter |
| sw | String starts with | username:sw:admin |
| ew | String ends with | email:ew:gmail.com |
| eq | Equals | level:eq:3 |
| ne | Not equals | level:ne:4 |
| gt | Greater than | level:gt:2 |
| ge | Greater than or equal | level:ge:3 |
| lt | Lesser than | level:lt:4 |
| le | Lesser than or equal | level:le:3 |
| in | In array | level:in:1|2|3 |
Sorting
Q: /users?sort[]=name:ASC
R: will return the collection of the users sort by their names ascending
Pagination
Q: /users?limit=10&page=3
R: will return a part of the collection of the users (from the 21st to 30th)
ngabor84/lumen-api-query-parser 适用场景与选型建议
ngabor84/lumen-api-query-parser 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.47k 次下载、GitHub Stars 达 3, 最近一次更新时间为 2017 年 05 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「lumen」 「query parser」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 ngabor84/lumen-api-query-parser 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 ngabor84/lumen-api-query-parser 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 ngabor84/lumen-api-query-parser 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Testing Suite For Lumen like Laravel does.
Query filtering in your frontend
Anax Database Active Record module for model classes.
A PSR-7 compatible library for making CRUD API endpoints
Stackdriver handler for Monolog (codeinternetapplications/monolog-stackdriver Fork).
Class to generate a standard structure for api json responses
统计信息
- 总下载量: 1.47k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-05-03