寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、Office办公、随笔等内容。

基于ThinkPHP6的API注释文档自动生成扩展

本扩展基于weiwei/api-doc ThinkPHP5.0改造而来,本人非常喜欢原扩展,无奈ThinkPHP6.0发布以来原作者一直未更新该扩展,所以自己就改了这么一个,支持ThinkPHP6.0的API注释文档自动生成扩展。

使用方法

1、安装扩展

composer require misscx/api-doc

2、静态资源复制

  • 将本插件目录src/apidoc复制到的到网站静态资源目录内,如将apidoc目录复制到网站根目录的/static下,目录结构如下: /static/apidoc

3、配置参数

安装好扩展后在 app\config\ 文件夹下会生成 doc.php 配置文件,打开配置文件修改如下内容:

  • 修改静态资源所在位置

'static_path' => '/static/apidoc',//静态资源所在位置
  • 在controller参数中添加需要生成文档的类

    'controller' => [
        'app\\controller\\Demo' //这个是控制器的命名空间+控制器名称
    ]
  • 配置路由 将本扩展src目录内route文件夹中的路由配置文件doc.php复制到路由目录内,如:/route/doc.php。

4、注释举例

  • 插件目录下有个Demo.php,可将其放入app/controller/下,单应用模式下有效,对于多应用模式,请根Demo.php进行修改。

  • Demo.php文件如下:返回参数支持数组及多维数组

<?php
namespace app\controller;

use think\facade\Request;

/**
 * @title 测试demo
 * @description 接口说明
 * @group 接口分组
 * @header name:key require:1 default: desc:秘钥(区别设置)
 * @param name:public type:int require:1 default:1 other: desc:公共参数(区别设置)
 */
class Demo
{
    /**
     * @title 测试demo接口
     * @description 接口说明
     * @author 开发者
     * @url /demo
     * @method POST
     *
     * @header name:device require:1 default: desc:设备号
     *
     * @param name:id type:int require:1 default:1 other: desc:唯一ID
     *
     * @return name:名称
     * @return mobile:手机号
     * @return list_messages:消息列表@
     * @list_messages message_id:消息ID content:消息内容
     * @return object:对象信息@!
     * @object attribute1:对象属性1 attribute2:对象属性2
     * @return array:数组值#
     * @return list_user:用户列表@
     * @list_user name:名称 mobile:手机号 list_follow:关注列表@
     * @list_follow user_id:用户id name:名称
     */
    public function index()
    {
        //接口代码
        $header = Request::header();
        $data = Request::request();
        return json_encode(["code"=>200, "message"=>"success", "data"=>['header'=>$header,'data'=>$data]]);
    }

    /**
     * @title 登录接口
     * @description 接口说明
     * @author 开发者
     * @url /demo/login
     * @method GET
     * @module 用户模块

     * @param name:name type:int require:1 default:1 other: desc:用户名
     * @param name:pass type:int require:1 default:1 other: desc:密码
     *
     * @return name:名称
     * @return mobile:手机号
     *
     */
    public function login()
    {
        //接口代码
        $header = Request::header();
        $data = Request::request();
        return json_encode(["code"=>200, "message"=>"success", "data"=>['header'=>$header,'data'=>$data]]);
    }
}

5、访问地址

在浏览器访问http://你的域名/doc或者http://你的域名/index.php/doc查看接口文档

特别鸣谢

本扩展基于weiwei/api-doc ThinkPHP5.0改造而来,本人非常喜欢原扩展,无奈ThinkPHP6.0发布以来原作者一直未更新该扩展,本人经修改后发布出来,在此对原作者表示由衷感谢和敬意!


文章写得不错?我是土豪我要在线打赏!
在线打赏

昵称:

验证码:验证码

评论:

文章分类
系统
程序
数据
Office
随笔
热门文章
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
Excel动态引用各表格指定单元格数据
开篇第一章
Excel文件内容很少,但文件很大,打开很慢怎么办?
如何利用python修改文件的创建时间,修改时间,访问时间
发现一个好网站——春燕文档
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
MySQL如何按每个分类查询10条数据,即MySQL如何每个分类查询10条数据
文章推荐
请不要奇怪,为什么最近博客的文章是几年前的内容
免责声明
关于博主
开篇第一章
随机推荐
access的mdb数据库长期使用变大的处理办法
我寒川又回来了
同一台电脑同时登陆多个飞信的方法
excel无重复排序,如何提取排名前5的学生对应姓名
Excel如何批量替换字符串?讲解Excel的字符替换函数SUBSTITUTE
输入法设置的时候提示"检测到不兼容的键盘驱动程序,该对话框已被停用?" 解决方法
用手机投射屏幕到win10上,win10投影到此电脑不可用怎么办?
我也玩玩php多线程
关于博主
不合格的emlog插件开发者
友情连接
春燕网络
春燕文档
谢润的博客