绅士 / apistarter
此软件包最新版本(1.0.3)没有提供许可信息。
用于简化API端点开发的软件包
1.0.3
2017-11-08 21:14 UTC
Requires
- php: >=5.4.0
- laravel/framework: >=5.1
- league/fractal: ^0.16.0
README
一个用于简化API控制器端点创建的软件包。
此软件包允许您快速创建功能齐全、模板化的API控制器和分形转换器,以便快速搭建JSON端点。
安装
composer require sirs/apistarter
- 将
Sirs\ApiStarter\ApiStarterServiceProvider::class,
添加到 config/app.php 文件中
用法
类
ApiController
您可以为这个控制器的子类提供一个模型类和一个分形转换器类,它将提供处理索引、存储、显示、更新、销毁(如果启用)的通用用例的资源方法。#ApiController#的一些功能
- 索引方法接受查询参数以限制、排序和过滤项目。
- 限制
- 按顺序排列
- 白名单过滤器
- 选择(可以是字符串或数组:例如?选择=名称或?选择[]=名称&select[]=id)
- 示例:
/api/participants?order_by=first_name&site_=1&select=
(其中site_id已在Api\UserController::$validFilters中定义)
- 索引和显示方法接受#with#查询参数以请求在您的(自定义)转换器中定义的可选包含内容。示例:
/api/participants/1?with=site
将包括参与者的站点,如果站点关系已在您的SiteTransformer中定义为包含。
GenericTransformer
这是一个通用的分形转换器类,它利用TransformsAttributes特性将模型的属性(如toArray()检索的)转换为响应数据。生成的自定义转换器也将默认使用TransformsAttributes特性。
Artisan命令
您可以使用包括Artisan命令快速创建ApiController子类和特定于模型的转换器
make:api-controller
此命令接受一个模型名称(例如App\User(确保您转义反斜杠))并在app/Http/Controllers/Api中创建一个控制器,它继承自Sirs\ApiStarter\Controllers\ApiController。现在您可以定义您的有效过滤器(如果有)和/或覆盖您喜欢的任何资源方法。
选项
--transformer
为您生成模型的模板化转换器(见下文)。--destroyable
在您的控制器中启用销毁方法(默认禁用)。
示例
php artisan make:api-controler App\\User --transformer
将创建
app/Http/Controllers/Api/UserController.php
app/Http/Transformers/UserTransformer.php
make:api-transformer
此命令接受一个模型名称(例如App\User(确保您转义反斜杠))并在app/Http/Transformers中创建一个转换器。此转换器使用一个特性,将自动包含您模型的所有非隐藏属性(在$model->toArray()
中显示的所有内容)。有关Fractal和转换器的更多信息,请参阅http://fractal.thephpleague.com/。
示例
php artisan make:api-transformer App\\Participant
将创建
app/Http/Transformers/ParticipantTransformer.php
注意:目前此功能处于开发中,您需要更新您的composer.json文件中的minimum-stability。