karunais13/api-response-formatter

v2.0 2020-03-03 05:43 UTC

This package is auto-updated.

Last update: 2024-09-29 05:29:06 UTC


README

Build Status Latest Stable Version PHP version License

此包允许标准化和结构化响应。特别是针对API。响应的结构将如下

{
       "succeeded"	: "true/false (boolean)",
       "code"		: "Success/Error Code (integer)" ,
       "message"	: "Success/Error Message (string)",
       "objects"	: "Return data (*)"
}

安装

按照通常的方式安装composer

在项目的根目录中运行此命令
"composer require karu/api-response-formatter"

对于Laravel 5.5及以下版本,在配置文件中添加提供者如下

app/config/app.php
	...
	
	'providers' => array(
		...
		Karu\ApiResponse\ApiResponseProvider::class,
	],
	
	...

        'aliases' => [
            ...
            ApiResponse: Karu\ApiResponse\Facades\ApiResponseFacade::class
        ]

配置

将包配置复制到相应的文件夹中。

 php artisan vendor:publish --provider='Karu\ApiResponse\ApiResponseProvider'
app/config/responsecode.php
<?php
return [
    'message' => [
        0           => '',

        // Sample Code setup
        // Model    : User
        100         => 'User not found.',
        101         => 'Incorrect combination of login information.',
        102         => 'You\'re not allow to use the same current password.',
        103         => 'Failed to update new password.',
        104         => 'This email is not available.',
        105         => 'Failed to create new user account.',
        106         => 'Failed to upload avatar.',
        107         => 'Failed to update user account.',
        108         => 'Invalid image file format.',
        109         => sprintf('Image file size cannot larger than %dMB.', 5),
        110         => 'Old password incorrect.',
        111         => 'Email does not exits. Please contact admin to reset the password.',
        112         => 'Password successfully updated',
        113         => 'User FB ID already exists',
        114         => 'Too many login attempt',
        115         => 'Failed to update new token.',
    ],
];
    

基本用法

将外观导入文件并返回它。如下所示

Laravel

    ....
    use ApiResponse;
    
    function example(){
        ....
        ....
        ....

        return ApiResponse::res(true, 100, []);
    }

可用方法

res( $status, $code, $data )

  • 根据代码获取响应消息
    • @param boolean $status
    • @param integer $code
    • @param string|object|array|null $data
ApiResponse::res(true, 100, [])

resCustom( $status, $message, $data )

  • 返回不带代码的响应
    • @param boolean $status
    • @param string $message
    • @param string|object|array|null $data
ApiResponse::resCustom(true, "User not found", [])

更改别名(针对Laravel)

app/config/app.php
	...

        'aliases' => [
            ...
            {user alias name}: Karu\ApiResponse\Facades\ApiResponseFacade::class
        ]

示例

	...

        'aliases' => [
            ...
            NpRes: Karu\ApiResponse\Facades\ApiResponseFacade::class
        ]

许可

在此存储库中查看许可。