saad/json-response-builder

此包通过使用标准且独特的响应结构简化了发送API JSON响应的过程

v1.6 2021-06-07 21:03 UTC

This package is auto-updated.

Last update: 2024-09-08 03:58:33 UTC


README

Json响应构建器包

Build Status License

安装

	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