承接 spool/apiinfo 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

spool/apiinfo

Composer 安装命令:

composer require spool/apiinfo

包简介

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

README 文档

README

介绍

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

软件架构

软件架构说明

安装教程

  1. Composer安装

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

composer require spool/apiinfo

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

php artisan vendor:publish --tag=apiinfo

打开 http://localhost/apiinfo/ 即可看到演示页面。

使用说明

  1. 配置说明

framework定义使用的框架, 目前只支持Laravel和DingoApi, 以后会逐渐增加对其他框架(如:Lumen、ThinkPHP等)的支持。 default是要扫描的路由前缀分组, 如针对不同的前端有不同的api文档,可以定义多个;如果是Dingo则无所谓。

prefix定义该分组要扫描的路径前缀, 如果有多个前缀可以定义多个, 都会包含在一个文档页面里。

  1. 配置代码

config/apiinfo.php

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

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

  1. 文档生成

样例控制器在 vendor/spool/apiinfo/src/Controllers/ExampleController.php 里面, 可以参照这个控制器来编写文档.

为了便于文档生成, 提供了Spool\ApiInfo\Requests\BaseRequest Spool\ApiInfo\Requests\PageRequest两个请求类, 作为控制器的参数.

  1. 对比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, 以及请求路径都是从路由定义里面获取的, 无需单独定义
  • 生成页面上方的输入框可以自定义要访问的域名, 如果不是本地域名需要解决跨域问题
  • http://localhost/apiinfo?modelName=default 可以指定要访问配置文件, 用于多前端接口文档的区分

参与贡献

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

特技

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

更新说明

v0.1.2

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

spool/apiinfo 适用场景与选型建议

spool/apiinfo 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 524 次下载、GitHub Stars 达 5, 最近一次更新时间为 2021 年 03 月 26 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 spool/apiinfo 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 spool/apiinfo 我们能提供哪些服务?
定制开发 / 二次开发

基于 spool/apiinfo 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 524
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 5
  • 点击次数: 3
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 5
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Apache-2.0
  • 更新时间: 2021-03-26