saad / json-response-builder
此包通过使用标准且独特的响应结构简化了发送API JSON响应的过程
v1.6
2021-06-07 21:03 UTC
Requires
- php: >=7.2
- illuminate/http: ~8.0
Requires (Dev)
- orchestra/testbench: ~4.0
- phpunit/phpunit: ^8.0
README
Json响应构建器包
安装
composer require saad/json-response-builder
变更日志
V 1.3.1
添加在添加数据时合并元数据的功能
addData(str $key, mix $val, bool $merge_meta)
$builder = new Saad\JsonResponseBuilder\JsonResponseBuilder(); $builder->addData('users', [ ['name' => 'Ahmed Saad'], 'meta' => [ 'name' => 'iam meta', ] ], true); // Note the third argument return $builder->getResponse(); // Output { "success": true, "meta" : { 'name' => 'iam meta', }, "data": [ 'users': [ {"name": "Ahmed Saad"} ], ], "message": "Successfully Retrieved" }
V 1.3
添加严格模式,默认开启:在严格模式下,如果数据或元数据为空,则将其值设置为 null 而不是 []
要关闭严格模式,在构造函数中传递 false 以禁用严格模式,这样它将返回空数组作为数据和元数据(如果它们为空)
您可以通过方法 strictMode(bool) 在实例上设置模式
用法
-
基本示例
在您的控制器内部
$builder = new Saad\JsonResponseBuilder\JsonResponseBuilder(); $builder->mergeData([ ['name' => 'Ahmed Saad'], ['name' => 'John Doe'] ]); $builder->addMeta([ 'pagination' => [ 'page' => 1, 'per_page' => 4, ] ]); return $builder->getResponse();
-
上述示例将输出
{ "success": true, "meta" : { "pagination": { "page": 1, "per_page": 4 } }, "data": [ {"name": "Ahmed Saad"}, {"name": "John Doe"} ], "message": "Successfully Retrieved" }
可用方法
addData($key, $value)
向数据添加具有给定键和值的新的成员
$builder->addData('doctors', ['ahmed', 'mohamed', 'saad']); $builder->addData('patients', ['patient1', 'patient3', 'patient3']); // Output data will be "data": { "doctors": ["ahmed", "mohamed", "saad"], "patients" ["patient1", "patient4", "patient3"] },
mergeData($array)
将给定的数组与数据合并,给定的数组键用作键,这在需要将数据作为JSON数组发送而不是JSON对象时很有用
此方法还将删除具有名为 'meta' 的键的给定数组,并将其添加到响应元数据中
$builder->mergeData(['ahmed', 'mohamed', 'meta' => ['key' => 'Iam Meta']]); // Output will be { "success": true, "meta": { "key": "Iam Meta" }, "data": [ "ahmed", "mohamed" ], "message": "Successfully Retrieved" }
addMeta($key, $value)
向元数据添加具有给定键和值的新的成员
mergeMeta($array)
将给定的数组与元数据合并
addHeader($header, $value)
向响应头添加头
success($response_message = null)
将响应成功状态设置为
true,并设置响应消息(如果提供)。
setMessage($response_message = null)
设置响应消息(如果提供)。
error($message = null, $error_code = null)
将响应成功状态设置为
false并设置消息和错误代码。$builder->error('Fails!', 2345); // Output will be { "success": false, "meta": null, "data": null, 'error': { "message": "Fails!", "code": 2345 } "message": "Fails!" }
addError($key, mixed $value)
将键添加到错误数组中
$builder->error('Fails!', 2345) ->addError('validation', 'validation value'); // Output will be { "success": false, "meta": null, "data": null, 'error': { "message": "Fails!", "code": 2345, "validation": "validation value" } "message": "Fails!" }
setStatusCode(301)
设置响应状态码。
strictMode(bool)
默认值
true自
V1.3启用或禁用严格模式。
$builder->getResponse(); // Strict Mode Enabled, Output will be { "success": false, "meta": null, "data": null, "message": "" } $builder->strictMode(false)->getResponse(); // Strict Mode Disabled, Output will be { "success": false, "meta":[], "data":[], "message": "" }
getResponse($status_code = null)
如果提供,则设置响应状态码并返回响应对象。
许可证
Laravel框架是开源软件,根据 MIT许可证 授权。README.md