ngabor84 / lumen-api-query-parser
基于Laravel Lumen框架的REST-API查询解析器
1.4.0
2019-12-04 07:03 UTC
Requires
- php: ^7.3
- laravel/lumen-framework: ^6.2
Requires (Dev)
- mockery/mockery: ^1.3
- nunomaduro/phpinsights: ^1.11
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-09-23 02:36:51 UTC
README
描述
这是一个基于Laravel Lumen框架的简单REST-API请求查询参数解析器。
要求
- PHP >=7.1
- Lumen框架 >= 5.4
- Mockery >= 0.9 (开发)
- PHPUnit >= 6.1 (开发)
- PHP CodeSniffer >= 3.0.0 RC4 (开发)
安装
- 将ngabor84/lumen-api-query-parser添加到您的composer.json中,并执行composer update,或者composer require ngabor84/lumen-api-query-parser ~1.0
- 设置服务提供者:在bootstrap/app.php中添加以下行
$app->register(LumenApiQueryParser\Provider\RequestQueryParserProvider::class);
使用方法
// 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']); } }
查询语法
急加载
Q: /users?connection[]=profile
R: 将返回包含其个人资料的用户的集合
筛选
Q: /users?filter[]=name:ct:admin
R: 将返回包含包含"admin"字符串名称的用户的集合
可用的筛选选项
排序
Q: /users?sort[]=name:ASC
R: 将返回按名称升序排序的用户的集合
分页
Q: /users?limit=10&page=3
R: 将返回用户集合的一部分(从第21条到第30条)