rohan0793/jsend

为Laravel 5应用程序定义JSend响应宏

1.2.3 2017-02-20 13:23 UTC

This package is not auto-updated.

Last update: 2024-09-28 18:25:39 UTC


README

Build Status Scrutinizer Code Quality Build Status

jsend

这是一个简单的composer包,用于从Laravel 5应用程序中发出JSend响应。

关于JSend的更多信息,请参阅此指南

安装

通过composer要求包

composer require rohan0793/jsend

将服务提供者添加到app.php配置文件中的提供者数组中

RC\JSend\ResponseMacroServiceProvider::class,

基本示例

return response()->jsend(
    $data = ['foo', 'bar'],
    $presenter = null,
    $status = 'success',
    $message = 'This is a JSend Response',
    $code = 200
);

输出

{
  "data": [
    "foo",
    "bar"
  ],
  "status": "success",
  "message": "This is a JSend Response"
}

资源获取示例

return response()->resource_fetched(
    $data = ['foo', 'bar']
);

输出

{
    "status": "success",
    "message": "Resource Fetched Successfully",
    "data": [
        "foo",
        "bar"
    ]
}

资源获取宏定义是为了方便和可读性。它将直接调用底层的JSend宏。消息、状态和代码将自动填充为successResource Fetched Successfully200。这在您有许多用于获取不同资源的路由时,可以用来移除重复的代码。

资源更新示例

return response()->resource_updated(
	$data = ['foo', 'bar']
);
{
    "status": "success",
    "message": "Resource Updated Successfully",
    "data": [
        "foo",
        "bar"
    ]
}

resource_fetched类似,我们还有resource_updated。消息、状态和代码将自动填充为successResource Updated Successfully200

资源创建示例

return response()->resource_updated(
	$data = ['foo', 'bar']
);
{
    "status": "success",
    "message": "Resource Created Successfully",
    "data": [
        "foo",
        "bar"
    ]
}

resource_fetched类似,我们还有resource_created。消息、状态和代码将自动填充为successResource Created Successfully201

资源删除示例

return response()->resource_deleted(
	$data = ['foo', 'bar']
);

resource_deleted有点特别。它将输出代码204 No Content。根据HTTP代码规范,它将没有任何输出。

JSend错误示例

return response()->jsend_error(
    new \Exception('Some Exception'),
    $message = null,
    $code = null
);
{
    "status": "error",
    "message": "Some Exception",
    "data": null
}

最后,我们有jsend_error宏,它基本上用于在发生错误时进行响应。它接受异常作为第一个参数。它将输出异常本身的代码和消息。如果传递了自定义消息和代码,它们将被输出。

展示者

除了带有消息和代码的基本响应宏之外,此包还支持展示者。您可以构建自己的展示者。包将自动在传递的展示者上调用present()方法。建议的方法是使用The PHP League的Fractal包。此包提供了非常强大的数据转换和展示功能。文档详尽且易于阅读和理解。