寒窗轩,寒川的个人网络博客,记录互联网事,学习网络编程、分享工作经验、人生感悟,包括但不限于程序代码、数据库、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
随笔
热门文章
请不要奇怪,为什么最近博客的文章是几年前的内容
ubuntu24.04无法安装向日葵,提示依赖libgconf-2-4怎么办?
ubuntu24.04安装网易云音乐
Ubuntu22.04中用thunar替换默认文件管理器,提示无法启动“TerminalEmulator“的首选应用程序
python读取旧的Excel文件的数据到新的Excel表中
nginx+php如何EventStream流式数据传输
python读取文件夹下图片并生成pdf文件
VB.net开发的word转pdf的小工具
使用python把word转成pdf
文章推荐
免责声明
关于博主
开篇第一章
随机推荐
Excel文件内容很少,但文件很大,打开很慢怎么办?
你好2014
杭州惊现“一分男”,银行反复存取1分钱(转)
学会控制自己的情绪
Excel文件内容很少,但文件很大,打开很慢、很卡怎么办?
Google will say no to China because of hackers attack gmail?
《妙先生》观后感
地震,你还要不要我们活啊?
腾讯云服务器快照恢复删除的数据
摸死你个性签名集合
友情连接
春燕网络
谢润的博客