alibori / laravel-api-resource-generator

一个从模型生成API资源的包。

v1.4.0 2024-04-16 17:21 UTC

This package is auto-updated.

Last update: 2024-09-16 18:09:46 UTC


README

Latest Version on Packagist Tests Passed Total Downloads

此包将帮助您为您的Laravel项目生成API资源。

安装

您可以通过composer安装此包

composer require alibori/laravel-api-resource-generator --dev

用法

您只需运行以下命令即可

php artisan api-resource:generate <model-name>

如果您想一次性生成多个资源,您可以传递用逗号分隔的多个模型名称

php artisan api-resource:generate <model-name>,<model-name>,<model-name>

此命令将为给定的模型/名称生成新的资源,这些资源具有模型中定义的属性。

如果您想将资源数组的键设置为驼峰命名法,您将被提示进行设置。

例如,对于名为User的模型,您将得到以下资源

<?php

namespace App\Http\Resources;

use Illuminate\Contracts\Support\Arrayable;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
use JsonSerializable;

/**
 * Resource generated by alibori/laravel-api-resource-generator
 *
 * @property integer $id
 * @property string $name
 * @property string $email
 * @property string $email_verified_at
 * @property string $password
 * @property string $remember_token
 * @property string $created_at
 * @property string $updated_at
 */
class UserResource extends JsonResource
{
     /**
     * Transform the resource into an array.
     *
     * @param  Request  $request
     * @return array|Arrayable|JsonSerializable
     */
    public function toArray($request): array|JsonSerializable|Arrayable
    {
        return [
            'id' => $this->id,
            'name' => $this->name,
            'email' => $this->email,
            'email_verified_at' => $this->email_verified_at,
            'remember_token' => $this->remember_token,
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at
        ];
    }
}

发布配置文件

如果您想发布配置文件以更改生成资源的默认命名空间以及资源将被生成的目录,您可以运行以下命令

php artisan vendor:publish --provider="Alibori\LaravelApiResourceGenerator\LaravelApiResourceGeneratorServiceProvider" --tag="config"