ngekoding/lumen-api-query-parser-php5

基于Laravel的Lumen框架的REST-API查询解析器

dev-master 2019-05-22 04:23 UTC

This package is auto-updated.

Last update: 2024-09-22 16:36:51 UTC


README

!!! 我已编辑原始包以支持php5 !!!

原始包在这里

如果您需要php5支持,则可以使用此包。但如果您已使用php7,请使用原始包。

描述

这是一个基于Laravel的Lumen框架的简单请求查询参数解析器。

要求

  • PHP >=5.6
  • Lumen框架 >= 5.4
  • Mockery >= 0.9 (dev)
  • PHPUnit >= 6.1 (dev)
  • PHP CodeSniffer >= 3.0.0 RC4 (dev)

安装

  • 将 ngekoding/lumen-api-query-parser-php5 添加到您的 composer.json 并运行 composer update,或者运行 composer require ngekoding/lumen-api-query-parser-php5 ~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?includes[]=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项)