kaydomrose/laravel-api-action

该包简化了为您的laravel应用程序创建api(json)端点。

dev-master 2021-08-02 19:29 UTC

This package is not auto-updated.

Last update: 2024-09-25 09:04:34 UTC


README

该包通过将路由、授权、验证和控制器逻辑简化为单个类,简化了为您的laravel应用程序创建api(json)端点。

class UserReadAction extends ActionController
{
    public function method(): string 
    {
        return 'GET';
    }

    public function uri(): string 
    {
        return '/users/{user}';
    }

    public function allow(Request $request): bool 
    {
        return true;
    }

    public function rules(Request $request): array 
    {
        return [];
    }

    public function handle(User $user): User
    {
        return $user;
    }
}

此操作将执行以下操作:

  • /users/{user}注册一个GET路由
  • 授权请求
  • 验证请求
  • 处理逻辑

安装

通过Composer

$ composer require kaydomrose/laravel-api-action

用法

首先,通过Artisan命令创建一个操作。

$ php artisan make:action MyAction

这将创建一个新的类app/Http/Actions/MyAction.php

接下来,在您的routes/api.php中注册您的操作

LaravelApiAction::routes([
    MyAction::class,
]);

完成!

文档

路由(必需)

public function method(): string {
    return 'GET';
}

public function uri(): string {
    return '/users/{user}';
}

指定操作的HTTP动词和URI。
有关可用动词的更多信息,请参阅https://laravel.net.cn/docs/master/routing#available-router-methods

上面的示例将转换为:

Route::get('/users/{user}', /* ... */);

授权(必需)

    public function allow(Request $request): bool 
    {
        return true;
    }

检查当前请求是否已授权。
表单请求授权类似。

验证(必需)

    public function rules(Request $request): array 
    {
        return [];
    }

指定请求验证的规则,如表单构建器验证中所示。

处理(必需)

    public function handle() {
        /* Your logic */
    }

这是放置操作逻辑的位置,就像您通常在控制器中做的那样。
还支持依赖注入路由模型绑定

您的返回值将被response()->json()包装,所以不要自己包装它。
只返回原始数据。

自定义http状态(可选)

    public function responseStatusCode(): int {
        return 200;
    }

自定义响应状态码。
默认为200

自定义验证消息(可选)

    public function validationMessages(): array {
        return [];
    }

自定义验证错误消息
默认为[]

变更日志

有关最近更改的更多信息,请参阅变更日志

测试

$ composer test