felo-z/laravel-api-response

Laravel API response and exception handler with unified JSON contract

Maintainers

Package info

github.com/Felo-Z/laravel-api-response

pkg:composer/felo-z/laravel-api-response

Statistics

Installs: 0

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-06-24 11:14 UTC

This package is auto-updated.

Last update: 2026-06-24 14:25:15 UTC


README

Laravel 13+ 统一 API 响应与异常处理扩展包。

要求

  • PHP >= 8.4
  • Laravel ^13.0

跨框架对齐

Hyperf 侧对应实现:felo-z/hyperf-api-response(PHP >= 8.2,Hyperf >= 3.2)。

两包共享相同的 JSON 契约、ap() 调用方式与 Pipeline 设计,便于 Laravel 与 Hyperf 服务返回一致格式。

安装

composer require felo-z/laravel-api-response

发布配置(可选,包已内置默认配置):

php artisan vendor:publish --provider="FeloZ\LaravelApiResponse\ApiResponseServiceProvider"

快速使用

ap()->ok(['id' => 1], 'ok');
ap()->success(['id' => 1], 'success');
ap()->message('created', 201, ['id' => 1]);
ap()->failed('bad request', 400, ['field' => 'name']);
ap()->exception($throwable);

也支持 Facade:

\FeloZ\LaravelApiResponse\Facades\Ap::ok(['id' => 1], 'ok');

响应结构

{
  "status": true,
  "code": 200,
  "message": "OK",
  "data": {},
  "error": {}
}
字段 说明
status 业务状态(true / false
code 业务码或 HTTP 状态码
message 提示文案
data 成功数据
error 错误详情(非 debug 可按配置隐藏)

HTTP 状态码策略

  • code100–599:HTTP 状态码 = code
  • code 为业务码:成功 → HTTP 200,失败 → HTTP 400

业务失败不会被误判为系统 500,与 Hyperf 版行为一致。

异常自动接管

安装后通过 ApiResponseServiceProvider 注册 render_using,对以下请求自动将未捕获异常转为统一 JSON:

  • expectsJson()true
  • 路径匹配 render_api_paths(默认 api/*

业务代码只需 throw,无需手动 return ap()->exception(...)

文档

开发

composer install
composer run test
composer run fix-style

License

MIT