绅士/apistarter

此软件包最新版本(1.0.3)没有提供许可信息。

用于简化API端点开发的软件包

1.0.3 2017-11-08 21:14 UTC

This package is auto-updated.

Last update: 2024-09-21 20:23:08 UTC


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。