代码功能更新
This commit is contained in:
@@ -0,0 +1,164 @@
|
||||
<?php
|
||||
|
||||
use think\migration\Migrator;
|
||||
|
||||
class PluginApiDoc extends Migrator
|
||||
{
|
||||
public function change()
|
||||
{
|
||||
$table = $this->table('plugin_apidoc', [
|
||||
'engine' => 'InnoDB',
|
||||
'comment' => 'Api文档',
|
||||
'collation' => 'utf8mb4_general_ci',
|
||||
]);
|
||||
|
||||
//删除表
|
||||
if ($table->exists()) {
|
||||
$table->drop();
|
||||
}
|
||||
|
||||
$table
|
||||
->addColumn('title', 'string', ['limit' => 255, 'default' => '', 'comment' => '标题'])
|
||||
->addColumn('des', 'text', ['comment' => '描述'])
|
||||
->addColumn('create_time', 'datetime', ['null' => 1, 'comment' => '创建时间'])
|
||||
->addColumn('update_time', 'datetime', ['null' => 1, 'comment' => '更新时间'])
|
||||
->addColumn('delete_time', 'datetime', ['null' => 1, 'comment' => '删除时间'])
|
||||
;
|
||||
|
||||
$data = [
|
||||
[
|
||||
'title' => '文档更新',
|
||||
'des' => '本文档分为两个部分,`全局说明文档`和`其他文档`。
|
||||
|
||||
# 全局说明文档
|
||||
全局说明下的文档在后台生成Api文档菜单中进行添加,添加完成后点击生成Api文档按钮即可在本文档中看见
|
||||
|
||||
# 其他文档
|
||||
其他文档使用PHP程序,通过PHP的类反射机制,获取到`app/controller/api/`目录下所有文件的注解来进行生成。
|
||||
|
||||
注解规则请查阅`laytp.com`官网手册或者框架`app/controller/api/Demo.php`文件。
|
||||
|
||||
如果后端程序员更新了`api`接口程序,并且使用了相应的注解规则,在后台点击`生成Api文档`按钮即可在本文档看到最新的Api文档
|
||||
|
||||
# 注意点
|
||||
由于文档使用的是静态html展示,而浏览器对html页面是有缓存的。所以如果文档进行了更新。可能需要强制刷新页面才能看到最新的文档。',
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'title' => '在线测试功能使用',
|
||||
'des' => '本文档使用`Laytp极速后台开发框架 - 生成Api文档插件`进行生成。
|
||||
如果需要使用本文档的在线测试功能,需要先进行Api文档配置。
|
||||
|
||||
### Api文档配置
|
||||
点击本文档右上角配置图标会弹出配置层。
|
||||
配置项包括:Api请求域名、签名开关、Header参数。
|
||||
|
||||
#### Api请求域名
|
||||
后台使用单域名部署模式,则无需修改,使用默认值即可。
|
||||
后台使用多域名部署模式,则后端程序员需要提供请求Api的域名地址。使用者不要以/结尾,将请求Api的域名地址填入此处
|
||||
|
||||
#### 签名开关
|
||||
请求Api有签名中间件,签名中间件是否启用要根据后台[系统配置 - 基础配置 - Api签名开关]是否开启的配置来决定。如果后台配置[Api签名开关]开启了,此处也要开启。此处开启后,使用本文档的在线测试功能时,在ajax请求头部会自动添加request-time和sign两个参数。至于签名具体如何生成,请查阅[签名相关]章节说明
|
||||
|
||||
#### Header参数
|
||||
此处填入后端程序员自定义的请求头部参数。框架自定义的请求头部参数有用户登录凭证token,请求时间戳request-time,签名sign三个。一个复杂的系统,一般还会在Header头部定义一些公用参数。比如平台标识,代理标识等等。这些公用参数根据需求不同由后端程序员定义,在使用本文档时,自行在此处进行添加
|
||||
|
||||
### 配置保存
|
||||
点击保存按钮,或者点击页面阴影部分遮罩层,配置都会进行保存
|
||||
|
||||
### 配置持久化
|
||||
Api文档配置使用的是localStorage存储在浏览器端进行持久化的。无需担心页面关闭后,配置不存在的问题',
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'title' => '统一说明',
|
||||
'des' => '# 请求方式
|
||||
默认使用POST方式进行请求
|
||||
|
||||
# 请求头Content-Type
|
||||
请求头的Content-Type定义请求参数的数据类型。ThinkPHP6兼容多种常用请求头方式。比如`application/json`、`application/form-data`和 `application/x-www-form-urlencoded`。
|
||||
|
||||
一般的接口,客户端可以使用`application/json`,自行将参数定义成`json`格式进行参数传递。
|
||||
|
||||
文件上传不支持`json`方式上传文件`Base64`内容,需要使用提交表单方式上传文件。
|
||||
|
||||
# 接口域名
|
||||
- 正式环境
|
||||
由后端程序员提供
|
||||
|
||||
- 测试环境
|
||||
由后端程序员提供
|
||||
|
||||
# 后台地址
|
||||
- 正式环境
|
||||
- 访问地址
|
||||
由后端程序员提供
|
||||
- 账号
|
||||
admin
|
||||
- 密码
|
||||
123456
|
||||
- 测试环境
|
||||
- 访问地址
|
||||
由后端程序员提供
|
||||
- 账号
|
||||
admin
|
||||
- 密码
|
||||
123456',
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'title' => '签名相关',
|
||||
'des' => '客户端请求Api接口程序,后端有签名中间件对请求进行拦截。
|
||||
|
||||
签名中间件是否启用要根据后台[系统配置 - 基础配置 - Api签名开关]是否开启的配置来决定。
|
||||
|
||||
如果后台配置[Api签名开关]开启了,那么客户端在请求Api接口时,需要在Header部分传递两个参数`request-time`和`sign`。
|
||||
|
||||
`request-time`的值由客户端自行定义为当前Unix时间戳。
|
||||
|
||||
`sign`的值由签名生成规则计算生成。
|
||||
|
||||
# 签名生成规则
|
||||
- 客户端自行定义request-time的值为当前Unix时间戳,并经过`md5`运算得到`stringA`
|
||||
|
||||
- 后台系统配置 - 基础配置 - Api签名Key的值为生成签名的Key,并经过`md5`运算得到`stringB`
|
||||
|
||||
- 连接`stringA`和`stringB`后经过`md5`运算得到`stringC`
|
||||
|
||||
- 最后将`stringC`全部转成大写即是客户端需要在请求头部分传递的`sign`值',
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
[
|
||||
'title' => '接口返回',
|
||||
'des' => '接口统一返回`json`格式的数据。
|
||||
|
||||
# 返回说明
|
||||
|
||||
|参数名|必然存在|类型|说明|
|
||||
|:---- |:---|:----- |----- |
|
||||
|code |是 |integer |接口返回码.0=常规正确码,表示常规操作成功;1=常规错误码,客户端仅需提示message;其他返回码与具体业务相关。框架实现了的唯一其他返回码:10401,前端需要跳转至登录界面。在一个复杂的交互过程中,你可能需要自行定义其他返回码|
|
||||
|msg |是 |string | 接口返回文字描述 |
|
||||
|time |是 |integer | 接口返回时间戳,单位秒 |
|
||||
|data |是 |object/array | 附加数据。单条数据是对象,多条数据是数组。当为空时,会返回一个空对象{}|
|
||||
|
||||
# 返回示例
|
||||
```
|
||||
{
|
||||
"code":1,
|
||||
"msg":"签名错误",
|
||||
"time":1613628412,
|
||||
"data":{}
|
||||
}
|
||||
```',
|
||||
'create_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s'),
|
||||
],
|
||||
];
|
||||
|
||||
$table->setData($data)->create();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user