coenond/lrvl-rspns

一个用于Laravel的帮助库,可以帮助您标准化HTTP响应。

v0.1.3 2018-12-11 21:51 UTC

This package is auto-updated.

Last update: 2024-09-12 11:05:26 UTC


README

Version Total Downloads

一个简单的Laravel帮助库,帮助您标准化HTTP响应。

该帮助库包括多个返回Json响应的函数。每个函数都已预先定义了正确的HTTP状态码。

通过运行以下命令将此包添加到您的Laravel项目中:

composer require coenond/lrvl-rspns

示例用法

在控制器中使用帮助函数。例如在User控制器中

/**
 * get user by id.
 */
public function get($id)
{
    try {
        $user = User::findOrFail($id);
        return rspns_ok($user);
    } catch(ModelNotFoundException $e) {
        return rspns_not_found($id, $e->getMessage());
    }
}

/**
 * Do not create users like this in your system :)
 */
public function create(Request $request)
{
    $email = $request->input('email');
    $password = $request->input('password');

    if (User::whereEmail($email)->exists()) {
        return rspns_bad_request($request->all(), "User already exists");
    }
    
    $user = User::create(['email' => $email, 'password' => $password]);

    return rspns_created($user);
}

所有帮助函数列表

  • rspns_ok()

    • 参数 $data 是可选的
    • 返回状态码 200
  • rspns_created()

    • 参数 $data 是可选的
    • 返回状态码 201
  • rspns_accepted()

    • 参数 $data 是可选的
    • 返回状态码 202
  • rspns_no_content()

    • 参数 $data 是可选的
    • 返回状态码 204
  • rspns_bad_request()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 400
  • rspns_unauthorized()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 401
  • rspns_not_found()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 404
  • rspns_method_not_allowed()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 405
  • rspns_internal_server_error()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 500
  • rspns_not_implemented()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 501
  • rspns_bad_gateway()

    • 参数 $data 是可选的
    • 参数 $message 是可选的
    • 返回状态码 502

成功响应

定义了带有状态 success2xx(成功)响应,并有一个可选的数据对象。

错误响应

定义了带有状态 success4xx5xx 响应,并有一个可选的数据对象和消息参数。

注意:不幸的是,PHP不支持命名参数,因此如果您想返回没有数据的错误消息,应该像这样返回:return rspns_bad_request(null, 'some messsage here');

欢迎贡献 :)

我开发了这个包作为“挠自己痒处”的解决方案。请随意提交拉取请求或联系我提出建议。

🍺 干杯!