ibunao 2019-01-04 16:25:37 1527次浏览 6条评论 6 1 0

之前已经介绍过了 yii-apidoc 扩展文章地址,但是根据备注生成接口文档感觉还不是我们真正需要的。也稍微查了一下 apidoc 是可以生成接口文档的,但是看到要装这装那也就没倒腾。之前看到过一个及其好用的生成接口文档并提供接口测试的项目,做成一个包供大家使用。

先看效果示例

首页

apidoc3

可以编辑文档说明和示例

apidoc5

接口调试

apidoc6

安装

composer require ibunao/yii2-apidoc

配置

配置到模块数组

假设我们要放到 backend 项目下

'modules' => [
    ...
    ...
    'document' => [
        'class' => 'ibunao\apidoc\Module',
        # 配置访问接口的host  通常配置 frontend 项目的域名
        'debugHost' => 'http://api.yiidoc.com',
        # 和配置时定义的模块名一致
        'moduleName' => 'document',
    ],
    ...
    ...
],

注意:如果访问的是其他域名,会存在跨域问题,需要在指向项目中添加header头,如 header("Access-Control-Allow-Origin: *"); 允许所有

配置需要接口文档的控制器
return [
	'apiList' => [
		'test' => [
			'label' => '文档测试',
			'class' => 'frontend\controllers\ApidocController',
		],
		'test2' => [
			'label' => '文档测试2',
			'class' => 'frontend\controllers\Apidoc2Controller',
		],
	],
];
表和静态资源

剩下的需要设置的就是创建一个表用来存储文档编辑部分数据,还有就是将静态资源放到指定位置。相关文件放在 vendor\ibunao\yii2-apidoc\source

  1. 需要创建表的sql看 document_api.sql 文件
  2. 以配在 backend 项目为例,把 cssjs 文件夹放在 backend\web

为什么不用资源发布和数据库迁移?
不想费劲

生成文档的备注格式

@name表示接口名称,不注释则文档不显示该接口

@uses表示接口简介/用途等,可空

@method表示请求方式,不注释默认为get

@param表示请求参数,可空可多个,后面分别跟类型、参数名,备注

@author表示接口作者/负责人,可空

/**
 * 注册步骤一:手机号获取验证码
 *
 * @name	获取注册验证码
 * @uses	用户注册是拉取验证码
 * @method	post
 * @param	string $phone 手机号
 * @author	echoding
 */
public function actionIndex()
{
    Yii::$app->response->format = 'json';
	return Yii::$app->request->post();
}

apidoc4
来源博客

觉得很赞
亿速云
  • 评论于 2019-01-10 17:16 举报

    学习了,挺好用,感谢,要是再能便宜实现header参数的添加就更好了

    1 条回复
    评论于 2019-01-11 09:53 回复

    这个有想过,等有时间了添加一下。我现在的做法是在基础类中把get或post的对应的参数添加到header中,看我下个评论,的截图。

  • 评论于 2019-01-11 09:55 举报

    目前需要在header头中加参数的可以参考下面的方式
    QQ截图20190111095352.png

  • 评论于 2019-03-05 10:24 举报

    刚刚误点了个举报。。。

  • 评论于 2019-03-25 18:22 举报

    composer require没反应是怎么回事呢

  • 评论于 2019-03-25 22:38 举报

    模块安装好了,但是我这里打开/document/api/index提示404,我初次接触yii,不知道哪里配置不对

  • 评论于 2019-03-26 09:43 举报

    配置需要接口文档的控制器

    这一段是要在哪个文件配置呢

    1 条回复
    评论于 2019-03-26 11:20 回复

    在params文件配置就行,你模块配置好了么?

您需要登录后才可以评论。登录 | 立即注册