jamosaur/foundation

此包最新版本(0.5)没有提供许可证信息。

Laravel API 的基础框架

0.5 2024-04-29 14:29 UTC

This package is auto-updated.

Last update: 2024-08-29 15:08:13 UTC


README

这是什么?

这是我用来构建 Laravel API 的基础框架。

它实际上是 spatie 的 laravel-fractal 的包装。

安装

  1. composer require jamosaur/foundation
  2. 更新你的 API 控制器以扩展 Jamosaur\Foundation\ApiController。这扩展了默认的 Laravel 控制器,并添加了我们将使用的方法。
  3. 更新你的 API 中间件在 app\Http\Kernel.php 中,使用 Jamosaur\Foundation\Middleware\ApiRequestMiddleware

示例用法

控制器

<?php

declare(strict_types=1);

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\JsonResponse;
use Jamosaur\Foundation\ApiController;

class UserController extends ApiController
{
    public function index(): JsonResponse
    {
        $users = User::all();
        
        // By default this will try to find a transformer in `App\Transformers` called 
        // `UserTransformer`. It guesses the name of the transformer based on the controller
        // name.
        return $this->transformCollection('users', $users)
            ->respond();
    }
    
    public function definedTransformer(): JsonResponse
    {
        $users = User::all();
        
        // You can override the transformer to use like this.
        return $this->setTransformer(new CustomTransformer())
            ->transformCollection('users', $users)
            ->respond();
    }
}

重要提示

  • 转换器 必须 实现 Jamosaur\Foundation\Contracts\TransformerContract 并扩展 League\Fractal\TransformerAbstract