dkx/json-api-middleware

该包已被废弃,不再维护。未建议替代包。

Json api 中间件

3.2.1 2019-12-09 09:59 UTC

This package is auto-updated.

Last update: 2024-01-09 19:06:41 UTC


README

json api 的中间件。

基于 dkx/json-api

安装

$ composer require dkx/json-api-middleware

使用方法

<?php

use DKX\JsonApi\Manager;
use DKX\JsonApiMiddleware\JsonApiMiddleware;

$manager = new Manager;
$middleware = new JsonApiMiddleware($manager, 'include');

示例控制器(Slim)

<?php

use DKX\JsonApiMiddleware\ItemResponse;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Message\ResponseInterface;

class DetailBookController
{
    public function __invoke(ServerRequestInterface $request, ResponseInterface $response, array $args): ResponseInterface
    {
        $book = loadBookById($args['id']);
        return new ItemResponse($response, $book);
    }
}

或者,当你需要转换一个项目数组时,可以直接使用 DKX\JsonApiMiddleware\CollectionResponse

分页

对于少量数据,使用 CollectionResponse 很容易,但对于大量数据,你应该使用分页。

这个库与 dkx/paginator 一起工作。

<?php

use DKX\JsonApiMiddleware\PaginatedResponse;
use DKX\Paginator\PaginatedData;

$currentPage = 1;
$itemsPerPage = 20;
$paginator = $paginatorFactory->create($totalCount, $currentPage);

$totalCount = getAllBooksCount();
$books = loadAllBooksWithPaginator($paginator);

$data = new PaginatedData($paginator, $books);
$response = new PaginatedResponse($response, $data);