PHPackages                             spool/apiinfo - 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. spool/apiinfo

ActiveLibrary[API Development](/categories/api)

spool/apiinfo
=============

PHP框架API文档生成工具, 无需生成静态文档. 动态生成. 目前先基于Laravel和Hyperf

v0.1.5(3y ago)5524Apache-2.0PHPPHP ^7.0

Since Jan 12Pushed 3y ago1 watchersCompare

[ Source](https://github.com/yydick/apiinfo)[ Packagist](https://packagist.org/packages/spool/apiinfo)[ RSS](/packages/spool-apiinfo/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (5)DependenciesVersions (8)Used By (0)

apiinfo
=======

[](#apiinfo)

#### 介绍

[](#介绍)

PHP框架API文档生成工具, 无需生成静态文档. 动态生成. 目前完成了基于Laravel的实现.

#### 软件架构

[](#软件架构)

软件架构说明

#### 安装教程

[](#安装教程)

1. Composer安装

> 我本人的开发环境是PHP7.3, 目前还没有做向下兼容的测试

```
composer require spool/apiinfo

```

> 运行这个命令添加资源和配置

```
php artisan vendor:publish --tag=apiinfo

```

打开  即可看到演示页面。

#### 使用说明

[](#使用说明)

1. 配置说明

> framework定义使用的框架, 目前只支持Laravel和DingoApi, 以后会逐渐增加对其他框架（如：Lumen、ThinkPHP等）的支持。 default是要扫描的路由前缀分组, 如针对不同的前端有不同的api文档,可以定义多个；如果是Dingo则无所谓。
>
> > prefix定义该分组要扫描的路径前缀, 如果有多个前缀可以定义多个, 都会包含在一个文档页面里。

2. 配置代码

> config/apiinfo.php

```
//ApiInfo配置文件
return [
    'framework' => 'laravel',
    'default' => [
        /**
         * 要扫描的路由前缀
         */
        'prefix' => ['exampleApiinfo'],
    ],
    'default1' => [
        /**
         * 要扫描的路由前缀
         */
        'prefix' => ['api'],
    ],
];

```

3. 页面模板

> 路径在 /resources/views/vendor/apiinfo 可以修改. 另希望能有前端贡献好看的页面模板

4. 文档生成

> 样例控制器在 vendor/spool/apiinfo/src/Controllers/ExampleController.php 里面, 可以参照这个控制器来编写文档.
>
> 为了便于文档生成, 提供了Spool\\ApiInfo\\Requests\\BaseRequest Spool\\ApiInfo\\Requests\\PageRequest两个请求类, 作为控制器的参数.

5. 对比Swagger和ApiDoc

- 每次修改后不需要生成静态页面, 实时修改, 实时更新, 不会因为忘记修改导致文档过时.
- 不需要添加大量的注释来辅助文档生成, 只需填写几个常用的注释即可.
- 完全基于PHP实现, 源代码可控.

#### 注释说明:

[](#注释说明)

```
/**
 * 演示控制器 -- 分组名称
 */
class ExampleController extends Controller
{
    /**
     * 演示控制器get文档 -- 接口名称
     *
     * 演示控制器get方法描述 -- 接口介绍
     * 写点什么
     * 接口简介
     *
     * @param PageRequest $request 请求 -- 参数类
     *
     * @return  array {"code":1,"msg":"err"} -- 接口返回值示例json格式
     * @version 1.0.0 -- 接口版本号
     * @example {"code":0,"msg":"success"} -- 接口返回值示例json格式
     * @example {"code":1,"msg":"err"} 失败 -- 接口返回值示例json格式
     */
    public function getM(PageRequest $request): array
    {
        return ['code' => 0, 'mesg' => 'ok', 'url' => $request->getBaseUrl()];
    }
}

```

- 类注释第一行是分组名称, 没有注释时将取类名作为分组名称.
- 方法注释第一行是接口名称, 没有注释时将取方法名作为接口名称.
- 第一行之外没有@开头的注释将作为接口介绍
- 参数列表优先取方法定义的参数getM(PageRequest $request), 支持任意类型, 不过对自带的BaseRequest衍生的类支持最好
- @return \[type\] 后面的json字符串可以解析为返回值示例.
- @return 没有定义返回值时会提示{"Document location":"@return mixed doc","format":"json"}
- @version 定义接口的版本号
- @example 定义成功|失败及其他需要标注的返回值示例
- 其他参数如GET|POST|PUT|ANY, 以及请求路径都是从路由定义里面获取的, 无需单独定义
- 生成页面上方的输入框可以自定义要访问的域名, 如果不是本地域名需要解决跨域问题
-  可以指定要访问配置文件, 用于多前端接口文档的区分

#### 参与贡献

[](#参与贡献)

1. Fork 本仓库
2. 新建 Feat\_xxx 分支
3. 提交代码
4. 新建 Pull Request

#### 特技

[](#特技)

1. 使用 Readme\_XXX.md 来支持不同的语言，例如 Readme\_en.md, Readme\_zh.md
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
3. 你可以  这个地址来了解 Gitee 上的优秀开源项目
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目，是综合评定出的优秀开源项目
5. Gitee 官方提供的使用手册
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目

### 更新说明

[](#更新说明)

#### v0.1.2

[](#v012)

1. 修复了在使用dingoapi过程中出现的部分Bug, 导致文档无法显示的问题.

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity39

Early-stage or recently created project

 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 ~41 days

Recently: every ~52 days

Total

6

Last Release

1379d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3ea1fc011819fc6d488889dfb91ed3b721cc11857694ca6ab728569027d0c1b4?d=identicon)[yydick](/maintainers/yydick)

---

Top Contributors

[![yydick](https://avatars.githubusercontent.com/u/10240390?v=4)](https://github.com/yydick "yydick (31 commits)")

### Embed Badge

![Health badge](/badges/spool-apiinfo/health.svg)

```
[![Health](https://phpackages.com/badges/spool-apiinfo/health.svg)](https://phpackages.com/packages/spool-apiinfo)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[knplabs/github-api

GitHub API v3 client

2.2k15.8M187](/packages/knplabs-github-api)[facebook/php-business-sdk

PHP SDK for Facebook Business

90121.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

73813.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

263103.1M454](/packages/google-gax)

PHPackages © 2026

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