devlabor/laravel-api

Laravel 包,用于快速构建 REST API。

v2.0.1 2022-07-26 09:51 UTC

This package is auto-updated.

Last update: 2024-09-26 14:47:42 UTC


README

Latest Version on Packagist GitHub Tests Action Status Sonarcloud Status Total Downloads

本包基于 "spatie/laravel-query-builder",允许您快速为 Laravel 应用创建 API 控制器。本包还与授权策略兼容。

基本用法

创建一个新的 API 控制器:ProductApiController

use DevLabor\Api\Http\Controllers\ApiController;

// ...

class ProductApiController extends ApiController
{
// ...
}

routes/api.php 中扩展您的 API 路由

// ...

Route::resource('products', 'Api\ProductApiController');

有时您需要在 API 中为对象指定一个标识符。为此,您可以使用 DevLabor\Api\Http\Resources\ApiResource 作为您自己的资源类的基类

use DevLabor\Api\Http\Resources\ApiResource;

class Product extends ApiResource
{
//
}

安装

您可以通过 composer 安装此包

composer require devlabor/laravel-api

您可以选择使用以下命令发布配置文件

php artisan vendor:publish --tag=api

这是发布配置文件的内容

return [
	'pagination' => [
		/**
		 * Number of items per page returned in index()
		 */
		'items' => 20
	]
];

使用方法

配置策略授权

通过修改控制器类中的 $authorizeAbilities 成员,可以部分限制授权检查。

// ...

protected $authorizeAbilities = [
	'viewAny', // index
	'view', // show
	'store',
	'update',
	'destroy'
];

有关策略的更多信息,请参阅 Laravel 的创建策略

禁用策略授权

您可以通过在控制器类中更改以下成员来禁用完整的检查。

protected $authorizeAbilities = false;

配置自定义路径

    /**
     * Models location
     * @var string
     */
    protected $modelPath = 'App\\Models\\';

    /**
     * Resources location
     * @var string
     */
    protected $resourcePath = 'App\\Http\\Resources\\';

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近的变化。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全性

如果您发现任何安全相关的问题,请通过电子邮件 office@devlabor.com 而不是使用问题跟踪器。

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅许可证文件