bycedric/delegator

此包已废弃,不再维护。没有建议的替代包。

一个不错的API助手,适用于Laravel,以保持您的响应RESTful。

dev-master 2014-03-22 13:08 UTC

This package is not auto-updated.

Last update: 2020-01-24 15:21:56 UTC


README

一个不错的API助手,适用于Laravel,以保持您的响应RESTful。它与Laravel的常规响应完美融合。

安装

您可以通过Composer安装此包。

"require-dev": {
    "by-cedric/delegator": "dev-master"
}

Delegator扩展了Laravel的基本Response外观。因此,您需要使用Delegator的Response外观版本。当然,您仍然可以使用Response的标准函数。

在config/app.php中搜索此行

'aliases' => array(
    ...
    'Response'        => 'Illuminate\Support\Facades\Response',
    ...
)

并将其替换为

'aliases' => array(
    ...
    'Response'        => 'ByCedric\Delegator\Facades\Response',
    ...
)

基本用法

您可以使用Delegator像这样简单

Response::api();

这初始化了一个新的Delegator,实际上是一个Response对象。因此,当您完成响应设置后,您只需将其作为正常的响应返回即可

public function show( $id )
{
    $task = Task::find($id);
      
    return Response::api($task);
}

函数

所有函数都是可链式的。使用Response外观创建了一个新的Delegator实例

Response::api();

您可以使用以下函数之一,作为链式方法,来操作响应。

code

在正常响应中,始终有一个状态码来解释基本状况。

它接受一个整数。

Response::api()->code(403);

message

API响应经常在开发人员开发应用程序时被读取。在开发过程中,可能会出错很多。因此,始终建议提供可读性强的消息。

它接受一个字符串。

Response::api()->message('Please specify a valid API key.');

data

API响应几乎总是填充着数据。我想不需要解释...

它接受一个数组,或者实现ArrayableInterface的任何对象。

Response::api()->data($task);

请注意,Delegator的构造函数也以完全相同的方式接受数据。

Response::api($task);

callback

并非所有时候都可以进行简单的JSON请求。然后您只需使用JSONP响应。

它接受一个字符串。

Response::api()->callback('loaded_call');

error

当发生错误时,您可能希望立即响应。错误负责可读性强的消息和HTTP状态码。

它接受一个字符串和一个整数。

Response::api()->error('Could not find task with id #'. $id, 404);

limit

当响应集合时,有关一次可以返回的项目数量的信息非常有用。例如,您可以使用它构建分页。

它接受一个整数,或布尔值以删除任何设置值。

Response::api()->limit(100);

offset

当响应集合时,有关整个集合当前偏移量的信息非常有用。例如,您可以使用它构建分页。

Response::api()->offset(45);

count

当响应集合时,有关现有项目总数的有关信息非常有用。例如,您可以使用它构建分页。

Response::api()->count(231);

mockCode

一些(旧的)客户端在处理HTTP状态码时非常笨拙。在这种情况下,最好让客户端稍微放松一下。这总是返回HTTP状态码200,只有响应中的代码才是真实的。

它接受一个布尔值,通常用于再次禁用它。

Response::api()->code(404)->mockCode();