PHPackages                             brooksyang/laravel-api-helper - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. brooksyang/laravel-api-helper

ActiveLibrary[API Development](/categories/api)

brooksyang/laravel-api-helper
=============================

Api doc generator for laravel 5

v2.0.1(6y ago)184374MITPHPPHP &gt;=7.0.0

Since Sep 30Pushed 6y ago1 watchersCompare

[ Source](https://github.com/BrooksYang/laravel-api-helper)[ Packagist](https://packagist.org/packages/brooksyang/laravel-api-helper)[ RSS](/packages/brooksyang-laravel-api-helper/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (2)Versions (32)Used By (0)

[![Build Status](https://camo.githubusercontent.com/bac982647da5c4d45b6eff2571302e4cc6ff6674436b63dd0c16a93f4ae8d5f0/68747470733a2f2f7472617669732d63692e6f72672f42726f6f6b7359616e672f6c61726176656c2d6170692d68656c7065722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/BrooksYang/laravel-api-helper)[![Software License](https://camo.githubusercontent.com/f251623e510f5909f16ae3f4e6e548dac11340b9fde1a99be26b015b39272c00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c6174)](LICENSE)

介绍
--

[](#介绍)

该项目是基于 Laravel 5.5 的API文档生成工具，根据 laravel 路由及注释文件生成可视化 api 文档，内置接口调试工具。

Demo
----

[](#demo)

[点击访问](http://api-helper.brooksyang.cn/api/docs)

项目依赖
----

[](#项目依赖)

依赖包版本PHP&gt;=7.0Laravel&gt;=5.5predis&gt;=1.1Guzzlehttp（2.0版本已废弃）&gt;=6.3更新日志
----

[](#更新日志)

> v2.0.0 2019-03-29
>
> - `重构` 移除 GuzzleHttp 依赖，接口测试改用 Laravel 内置的 Request 类请求
> - `重构` 移除 ResponseHelper Trait

> v1.6.0 2019-03-19
>
> - `新增` 支持资源路由（参数接收方式见「使用示例」）
> - `新增` 内置接口访问统计（需启用 request.counter 中间件）

> v1.5.4 2019-03-19
>
> - `新增` 请求 api 设置 Accept 为 json

> v1.5.3 2019-03-01
>
> - `优化` 样式调整

> v1.5.2 2019-03-01
>
> - `新增` 可选是否开启文档功能，默认开启
> - `优化` 移除js公共资源

> v1.5.1 2019-03-01
>
> - `优化` 文件结构调整

> v1.5.0 2019-03-01
>
> - `新增` 测试工具提供 Pretty、Raw、Preview 三种响应结果视图

> v1.4.7 2019-02-28
>
> - `新增` 压力测试调整为可选功能，默认关闭

> v1.4.6 2019-02-28
>
> - `优化` 压缩css文件

> v1.4.5 2019-02-28
>
> - `新增` 测试工具允许使用 dd、dump、echo 等方法直接打印数据
> - `优化` 测试工具返回完整异常信息

> v1.4.4 2018-07-20
>
> - `优化` 左侧菜单样式优化

> v1.4.3 2018-06-28
>
> - `优化` 模块分组优化

> v1.4.2 2018-06-28
>
> - `新增` 新增模块分组功能，以区分不同命名空间下的重名文件夹

> v1.4.1 2018-06-24
>
> - `修复` 修复api-helper配置文件的bug

> v1.4.0 2018-06-24
>
> - `新增` 可指定文档生成的命名空间，向下兼容v1.3，默认命名空间为App\\Http\\Controllers

> v1.3.2 2018-03-31
>
> - `优化` 压力测试安全机制优化

> v1.3.0 2018-02-13
>
> - `新增`表单支持文件上传

> v1.2.0 2018-01-22
>
> - `新增` 新增ResponseHelper Trait，封装常用api返回方法

> v1.1.1 2018-01-22
>
> - `新增` Guzzle 请求异常处理

> v1.1.0 2017-12-18
>
> - `新增` 支持在线ApacheBench服务器压力测试，并缓存最近一次压测结果，在接口列表及详情页展示

安装
--

[](#安装)

```
composer require brooksyang/laravel-api-helper
```

配置
--

[](#配置)

打印配置文件，及静态资源，该命令将生成 config/api-helper.php，及 /public/vendor/api\_helper 文件夹

```
php artisan vendor:publish --tag=api-helper
```

api-helper.php 配置项说明

```
cache_tag_prefix // 缓存前缀，默认为api_helper，建议不同项目设置不同前缀以防止冲突

cache_ttl // 缓存时长，默认120分钟，可根据项目需求自行设置

api_base_url // 接口请求基础地址，默认为当前，一般情况下不需要配置，若存在内外网不通的情况，可设置为相应内网地址

api_doc // v1.5.2 新增，是否开启Api文档及测试工具，默认 true

api_pressure_test // v1.4.7 新增，是否开启压力测试功能，默认 false

namespaces // 指定生成Api文档命名空间，数组，key为group，value为namespace，请确保namspace之间没有交集，否则小集合将被忽略
```

注意：请确保所配置的命名空间下存在次级命名空间，否则将被忽略，次级命名空间将作为模块名，更深层次命名空间与次级命名空间同级，例：

namespaces 配置示例

```
namespaces => [
    'Helper' => 'BrooksYang\LaravelApiHelper\Controllers\BuiltIn', // v1.6.0 新增，内置接口访问统计
    'App'  => 'App\Http\Controllers', // 生效
    'Test' => 'App\Http\Controllers\Test', // 无效
    'Api'  => 'Api\Controllers' // 生效
];
```

该配置中，「App」包含「Test」，「App」与「Api」同级，所以「Test」被忽略

代码目录结构

```
|--app
    |--Http
        |--Controllers
            |--TestController // 无效
            |--Demo
                |--DemoController // 生效
                |--Deep
                    |--DeepController // 生效，与DemoController 同级
|--Api
    |--Controllers
        |--Xxx
            |--XxxController // 生效
```

以上配置，TestController被忽略，DemoController 生效，DeepController与DemoController同级生效，XxxController生效

启用接口访问统计（可选）
------------

[](#启用接口访问统计可选)

vim app/Http/Kernel，在 $middlewareGroups 中添加 'request.counter' 中间件

```
/**
 * The application's route middleware groups.
 *
 * @var array
 */
protected $middlewareGroups = [
    // ***

    'api' => [
        'throttle:60,1',
        'bindings',
        'request.counter', // 启用「接口访问统计」中间件
    ],
];
```

设置缓存驱动
------

[](#设置缓存驱动)

修改 .env 文件，将缓存驱动设置为redis（推荐）

```
CACHE_DRIVER=redis
```

若本机没有安装redis，可暂时设置为array

```
CACHE_DRIVER=array
```

使用示例
----

[](#使用示例)

```
use BrooksYang\LaravelApiHelper\Traits\ResponseHelper;

/**
 * 这里是api标题
 *
 * @return \Illuminate\Http\Response
 */
public function index(Request $request)
{
    // 支持以下三种方式接收表单参数
    $paramA = $request->input('param_a'); // 参数一说明
    $paramB = $request->get('param_b'); // 参数二说明
    $paramC = Input::get('param_c'); // 参数三说明

    // 针对资源路由（v1.6.0 新增）
    $param = $request->input('{param}'); // 资源路由参数接收

    // 支持接收表单文件（v1.3.0新增）
    $file = $request->file('upload_file');

    // 以下是返回内容，ResponseHelper封装了三种返回方法，不强制使用，可自定义返回数据结构
    return $this->jsonResponse(['test' => 'blablabla'], '操作成功'); // 方式一，操作成功，返回数据及提示信息
    return $this->errorResponse(['code' => 'xxx', 'msg' => '操作失败']); // 方式二，操作失败，返回错误码及错误消息
    return $this->msgResponse('操作成功'); // 方式三，操作成功，仅返回成功提示消息
}
```

注意
--

[](#注意)

若设置了redis驱动，添加了新的api之后，需执行清除缓存操作（若缓存驱动为array，则跳过该步骤）

```
php artisan cache:clear
```

访问地址
----

[](#访问地址)

```
http:///api/docs
```

TODO LIST
---------

[](#todo-list)

- 支持资源路由
- 接口访问统计
- 记录接口访问日志
- 返回参数自动生成文档

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~26 days

Recently: every ~59 days

Total

31

Last Release

2420d ago

Major Versions

v1.6.1 → v2.0.02019-05-10

### Community

Maintainers

![](https://www.gravatar.com/avatar/7ee0e5f72e548ff169a7eca2747b8990e16d43b94d33d2b08af7029049da240c?d=identicon)[BrooksYang](/maintainers/BrooksYang)

---

Top Contributors

[![brooksyang](https://avatars.githubusercontent.com/u/20674504?v=4)](https://github.com/brooksyang "brooksyang (57 commits)")

### Embed Badge

![Health badge](/badges/brooksyang-laravel-api-helper/health.svg)

```
[![Health](https://phpackages.com/badges/brooksyang-laravel-api-helper/health.svg)](https://phpackages.com/packages/brooksyang-laravel-api-helper)
```

###  Alternatives

[unopim/unopim

UnoPim Laravel PIM

10.3k2.2k](/packages/unopim-unopim)[statamic/cms

The Statamic CMS Core Package

4.8k3.5M923](/packages/statamic-cms)[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k36.4M126](/packages/darkaonline-l5-swagger)[knuckleswtf/scribe

Generate API documentation for humans from your Laravel codebase.✍

2.3k13.5M60](/packages/knuckleswtf-scribe)[justbetter/laravel-magento-client

A client to interact with Magento

49108.7k14](/packages/justbetter-laravel-magento-client)[weapnl/laravel-junction

Easily create a REST API with extended functionality, such as eager loading, searching, filtering, and more.

2213.5k](/packages/weapnl-laravel-junction)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
