增加自建API接口操作
This commit is contained in:
@@ -0,0 +1,41 @@
|
|||||||
|
package com.zyplayer.doc.api.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.zyplayer.doc.core.json.DocResponseJson;
|
||||||
|
import com.zyplayer.doc.core.json.ResponseJson;
|
||||||
|
import com.zyplayer.doc.data.service.manage.ApiCustomFolderService;
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档分组 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/api-custom-folder")
|
||||||
|
public class ApiCustomFolderController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ApiCustomFolderService apiCustomFolderService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有的文档地址
|
||||||
|
*
|
||||||
|
* @return 文档内容
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021年10月16日
|
||||||
|
*/
|
||||||
|
@ResponseBody
|
||||||
|
@PostMapping(value = "/add")
|
||||||
|
public ResponseJson<Object> add(Long docId, Long parentFolderId) {
|
||||||
|
return DocResponseJson.ok();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
package com.zyplayer.doc.api.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Controller;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档 前端控制器
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Controller
|
||||||
|
@RequestMapping("/api-custom")
|
||||||
|
public class ApiCustomRequestController {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -13,8 +13,10 @@ import com.zyplayer.doc.core.json.ResponseJson;
|
|||||||
import com.zyplayer.doc.data.config.security.DocUserDetails;
|
import com.zyplayer.doc.data.config.security.DocUserDetails;
|
||||||
import com.zyplayer.doc.data.config.security.DocUserUtil;
|
import com.zyplayer.doc.data.config.security.DocUserUtil;
|
||||||
import com.zyplayer.doc.data.repository.manage.entity.ApiDoc;
|
import com.zyplayer.doc.data.repository.manage.entity.ApiDoc;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo;
|
||||||
import com.zyplayer.doc.data.repository.manage.vo.ApiDocVo;
|
import com.zyplayer.doc.data.repository.manage.vo.ApiDocVo;
|
||||||
import com.zyplayer.doc.data.repository.support.consts.ApiAuthType;
|
import com.zyplayer.doc.data.repository.support.consts.ApiAuthType;
|
||||||
|
import com.zyplayer.doc.data.service.manage.ApiCustomRequestService;
|
||||||
import com.zyplayer.doc.data.service.manage.ApiDocService;
|
import com.zyplayer.doc.data.service.manage.ApiDocService;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@@ -49,6 +51,8 @@ public class ApiDocumentController {
|
|||||||
private ApiDocService apiDocService;
|
private ApiDocService apiDocService;
|
||||||
@Resource
|
@Resource
|
||||||
private SwaggerHttpRequestService swaggerHttpRequestService;
|
private SwaggerHttpRequestService swaggerHttpRequestService;
|
||||||
|
@Resource
|
||||||
|
ApiCustomRequestService apiCustomRequestService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取所有的文档地址
|
* 获取所有的文档地址
|
||||||
@@ -148,6 +152,8 @@ public class ApiDocumentController {
|
|||||||
}
|
}
|
||||||
} else if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) {
|
} else if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) {
|
||||||
apiDocService.saveOrUpdate(apiDoc);
|
apiDocService.saveOrUpdate(apiDoc);
|
||||||
|
} else if (Objects.equals(apiDoc.getDocType(), 5)) {
|
||||||
|
apiDocService.saveOrUpdate(apiDoc);
|
||||||
} else {
|
} else {
|
||||||
return DocResponseJson.warn("暂不支持的文档类型");
|
return DocResponseJson.warn("暂不支持的文档类型");
|
||||||
}
|
}
|
||||||
@@ -214,6 +220,10 @@ public class ApiDocumentController {
|
|||||||
if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) {
|
if (Objects.equals(apiDoc.getDocType(), 2) || Objects.equals(apiDoc.getDocType(), 4)) {
|
||||||
return DocResponseJson.ok(apiDoc.getJsonContent());
|
return DocResponseJson.ok(apiDoc.getJsonContent());
|
||||||
}
|
}
|
||||||
|
if (Objects.equals(apiDoc.getDocType(), 5)) {
|
||||||
|
List<ApiCustomVo> customVoList = apiCustomRequestService.buildCustomApiList(apiDoc.getId());
|
||||||
|
return DocResponseJson.ok(customVoList);
|
||||||
|
}
|
||||||
return DocResponseJson.warn("暂不支持的文档类型");
|
return DocResponseJson.warn("暂不支持的文档类型");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,146 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档文件夹
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@TableName("api_custom_folder")
|
||||||
|
public class ApiCustomFolder implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键自增ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* api_doc主键ID
|
||||||
|
*/
|
||||||
|
private Long docId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父文件夹ID
|
||||||
|
*/
|
||||||
|
private Long parentFolderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件夹名称
|
||||||
|
*/
|
||||||
|
private String folderName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件夹说明
|
||||||
|
*/
|
||||||
|
private String folderDesc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人ID
|
||||||
|
*/
|
||||||
|
private Long createUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名字
|
||||||
|
*/
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有效 0=无效 1=有效
|
||||||
|
*/
|
||||||
|
private Integer yn;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
public Long getDocId() {
|
||||||
|
return docId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDocId(Long docId) {
|
||||||
|
this.docId = docId;
|
||||||
|
}
|
||||||
|
public Long getParentFolderId() {
|
||||||
|
return parentFolderId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setParentFolderId(Long parentFolderId) {
|
||||||
|
this.parentFolderId = parentFolderId;
|
||||||
|
}
|
||||||
|
public String getFolderName() {
|
||||||
|
return folderName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFolderName(String folderName) {
|
||||||
|
this.folderName = folderName;
|
||||||
|
}
|
||||||
|
public String getFolderDesc() {
|
||||||
|
return folderDesc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFolderDesc(String folderDesc) {
|
||||||
|
this.folderDesc = folderDesc;
|
||||||
|
}
|
||||||
|
public Long getCreateUserId() {
|
||||||
|
return createUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateUserId(Long createUserId) {
|
||||||
|
this.createUserId = createUserId;
|
||||||
|
}
|
||||||
|
public String getCreateUserName() {
|
||||||
|
return createUserName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateUserName(String createUserName) {
|
||||||
|
this.createUserName = createUserName;
|
||||||
|
}
|
||||||
|
public Date getCreateTime() {
|
||||||
|
return createTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateTime(Date createTime) {
|
||||||
|
this.createTime = createTime;
|
||||||
|
}
|
||||||
|
public Integer getYn() {
|
||||||
|
return yn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYn(Integer yn) {
|
||||||
|
this.yn = yn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ApiCustomFolder{" +
|
||||||
|
"id=" + id +
|
||||||
|
", docId=" + docId +
|
||||||
|
", parentFolderId=" + parentFolderId +
|
||||||
|
", folderName=" + folderName +
|
||||||
|
", folderDesc=" + folderDesc +
|
||||||
|
", createUserId=" + createUserId +
|
||||||
|
", createUserName=" + createUserName +
|
||||||
|
", createTime=" + createTime +
|
||||||
|
", yn=" + yn +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,198 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@TableName("api_custom_request")
|
||||||
|
public class ApiCustomRequest implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键自增ID
|
||||||
|
*/
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* api_doc主键ID
|
||||||
|
*/
|
||||||
|
private Long docId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件夹ID
|
||||||
|
*/
|
||||||
|
private Long folderId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口名称
|
||||||
|
*/
|
||||||
|
private String apiName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口url
|
||||||
|
*/
|
||||||
|
private String apiUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* form参数
|
||||||
|
*/
|
||||||
|
private String formData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* body参数
|
||||||
|
*/
|
||||||
|
private String bodyData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* header参数
|
||||||
|
*/
|
||||||
|
private String headerData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cookie参数
|
||||||
|
*/
|
||||||
|
private String cookieData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人ID
|
||||||
|
*/
|
||||||
|
private Long createUserId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人名字
|
||||||
|
*/
|
||||||
|
private String createUserName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否有效 0=无效 1=有效
|
||||||
|
*/
|
||||||
|
private Integer yn;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
public Long getDocId() {
|
||||||
|
return docId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDocId(Long docId) {
|
||||||
|
this.docId = docId;
|
||||||
|
}
|
||||||
|
public Long getFolderId() {
|
||||||
|
return folderId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFolderId(Long folderId) {
|
||||||
|
this.folderId = folderId;
|
||||||
|
}
|
||||||
|
public String getApiName() {
|
||||||
|
return apiName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiName(String apiName) {
|
||||||
|
this.apiName = apiName;
|
||||||
|
}
|
||||||
|
public String getApiUrl() {
|
||||||
|
return apiUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiUrl(String apiUrl) {
|
||||||
|
this.apiUrl = apiUrl;
|
||||||
|
}
|
||||||
|
public String getFormData() {
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFormData(String formData) {
|
||||||
|
this.formData = formData;
|
||||||
|
}
|
||||||
|
public String getBodyData() {
|
||||||
|
return bodyData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBodyData(String bodyData) {
|
||||||
|
this.bodyData = bodyData;
|
||||||
|
}
|
||||||
|
public String getHeaderData() {
|
||||||
|
return headerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeaderData(String headerData) {
|
||||||
|
this.headerData = headerData;
|
||||||
|
}
|
||||||
|
public String getCookieData() {
|
||||||
|
return cookieData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCookieData(String cookieData) {
|
||||||
|
this.cookieData = cookieData;
|
||||||
|
}
|
||||||
|
public Long getCreateUserId() {
|
||||||
|
return createUserId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateUserId(Long createUserId) {
|
||||||
|
this.createUserId = createUserId;
|
||||||
|
}
|
||||||
|
public String getCreateUserName() {
|
||||||
|
return createUserName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateUserName(String createUserName) {
|
||||||
|
this.createUserName = createUserName;
|
||||||
|
}
|
||||||
|
public Date getCreateTime() {
|
||||||
|
return createTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreateTime(Date createTime) {
|
||||||
|
this.createTime = createTime;
|
||||||
|
}
|
||||||
|
public Integer getYn() {
|
||||||
|
return yn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setYn(Integer yn) {
|
||||||
|
this.yn = yn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "ApiCustomRequest{" +
|
||||||
|
"id=" + id +
|
||||||
|
", docId=" + docId +
|
||||||
|
", folderId=" + folderId +
|
||||||
|
", apiName=" + apiName +
|
||||||
|
", apiUrl=" + apiUrl +
|
||||||
|
", formData=" + formData +
|
||||||
|
", bodyData=" + bodyData +
|
||||||
|
", headerData=" + headerData +
|
||||||
|
", cookieData=" + cookieData +
|
||||||
|
", createUserId=" + createUserId +
|
||||||
|
", createUserName=" + createUserName +
|
||||||
|
", createTime=" + createTime +
|
||||||
|
", yn=" + yn +
|
||||||
|
"}";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.mapper;
|
||||||
|
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档文件夹 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ApiCustomFolderMapper extends BaseMapper<ApiCustomFolder> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.mapper;
|
||||||
|
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ApiCustomRequestMapper extends BaseMapper<ApiCustomRequest> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.vo;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* api自建文档信息
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-11-25
|
||||||
|
*/
|
||||||
|
public class ApiCustomDocVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口名称
|
||||||
|
*/
|
||||||
|
private String apiName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口url
|
||||||
|
*/
|
||||||
|
private String apiUrl;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* form参数
|
||||||
|
*/
|
||||||
|
private String formData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* body参数
|
||||||
|
*/
|
||||||
|
private String bodyData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* header参数
|
||||||
|
*/
|
||||||
|
private String headerData;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* cookie参数
|
||||||
|
*/
|
||||||
|
private String cookieData;
|
||||||
|
|
||||||
|
public String getApiName() {
|
||||||
|
return apiName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiName(String apiName) {
|
||||||
|
this.apiName = apiName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApiUrl() {
|
||||||
|
return apiUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApiUrl(String apiUrl) {
|
||||||
|
this.apiUrl = apiUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFormData() {
|
||||||
|
return formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFormData(String formData) {
|
||||||
|
this.formData = formData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getBodyData() {
|
||||||
|
return bodyData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBodyData(String bodyData) {
|
||||||
|
this.bodyData = bodyData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHeaderData() {
|
||||||
|
return headerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHeaderData(String headerData) {
|
||||||
|
this.headerData = headerData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCookieData() {
|
||||||
|
return cookieData;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCookieData(String cookieData) {
|
||||||
|
this.cookieData = cookieData;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
package com.zyplayer.doc.data.repository.manage.vo;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* api自建文档信息
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-11-25
|
||||||
|
*/
|
||||||
|
public class ApiCustomVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件夹名称
|
||||||
|
*/
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件夹说明
|
||||||
|
*/
|
||||||
|
private String desc;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 子目录列表
|
||||||
|
*/
|
||||||
|
private List<ApiCustomVo> children;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接口列表
|
||||||
|
*/
|
||||||
|
private List<ApiCustomDocVo> apis;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDesc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDesc(String desc) {
|
||||||
|
this.desc = desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ApiCustomVo> getChildren() {
|
||||||
|
return children;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setChildren(List<ApiCustomVo> children) {
|
||||||
|
this.children = children;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ApiCustomDocVo> getApis() {
|
||||||
|
return apis;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApis(List<ApiCustomDocVo> apis) {
|
||||||
|
this.apis = apis;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -16,7 +16,7 @@ import java.util.Collections;
|
|||||||
public class CodeGenerator {
|
public class CodeGenerator {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
final String[] tableName = {"api_doc", "api_request_param", "api_global_param"};
|
final String[] tableName = {"api_custom_request", "api_custom_folder"};
|
||||||
String url = "jdbc:mysql://127.0.0.1:3306/zyplayer_doc_manage?useUnicode=true&useSSL=false&characterEncoding=utf8";
|
String url = "jdbc:mysql://127.0.0.1:3306/zyplayer_doc_manage?useUnicode=true&useSSL=false&characterEncoding=utf8";
|
||||||
String projectPath = System.getProperty("user.dir") + "/zyplayer-doc-data";
|
String projectPath = System.getProperty("user.dir") + "/zyplayer-doc-data";
|
||||||
String outputDir = projectPath + "/src/main/java";
|
String outputDir = projectPath + "/src/main/java";
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.zyplayer.doc.data.service.manage;
|
||||||
|
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档文件夹 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ApiCustomFolderService extends IService<ApiCustomFolder> {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.zyplayer.doc.data.service.manage;
|
||||||
|
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
public interface ApiCustomRequestService extends IService<ApiCustomRequest> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 构建目录树
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
List<ApiCustomVo> buildCustomApiList(Long docId);
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
package com.zyplayer.doc.data.service.manage.impl;
|
||||||
|
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.mapper.ApiCustomFolderMapper;
|
||||||
|
import com.zyplayer.doc.data.service.manage.ApiCustomFolderService;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档文件夹 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ApiCustomFolderServiceImpl extends ServiceImpl<ApiCustomFolderMapper, ApiCustomFolder> implements ApiCustomFolderService {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
package com.zyplayer.doc.data.service.manage.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomFolder;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.entity.ApiCustomRequest;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.mapper.ApiCustomRequestMapper;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomDocVo;
|
||||||
|
import com.zyplayer.doc.data.repository.manage.vo.ApiCustomVo;
|
||||||
|
import com.zyplayer.doc.data.service.manage.ApiCustomFolderService;
|
||||||
|
import com.zyplayer.doc.data.service.manage.ApiCustomRequestService;
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 自建接口文档 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ApiCustomRequestServiceImpl extends ServiceImpl<ApiCustomRequestMapper, ApiCustomRequest> implements ApiCustomRequestService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ApiCustomRequestService apiCustomRequestService;
|
||||||
|
@Resource
|
||||||
|
ApiCustomFolderService apiCustomFolderService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ApiCustomVo> buildCustomApiList(Long docId) {
|
||||||
|
// 查询api列表
|
||||||
|
QueryWrapper<ApiCustomRequest> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.eq("doc_id", docId);
|
||||||
|
wrapper.eq("yn", 1);
|
||||||
|
List<ApiCustomRequest> apiCustomList = apiCustomRequestService.list(wrapper);
|
||||||
|
Map<Long, List<ApiCustomRequest>> apiMap = apiCustomList.stream().collect(Collectors.groupingBy(ApiCustomRequest::getFolderId));
|
||||||
|
// 查询分组列表
|
||||||
|
QueryWrapper<ApiCustomFolder> groupWrapper = new QueryWrapper<>();
|
||||||
|
groupWrapper.eq("doc_id", docId);
|
||||||
|
groupWrapper.eq("yn", 1);
|
||||||
|
List<ApiCustomFolder> apiCustomGroupList = apiCustomFolderService.list(groupWrapper);
|
||||||
|
Map<Long, List<ApiCustomFolder>> apiGroupMap = apiCustomGroupList.stream().collect(Collectors.groupingBy(ApiCustomFolder::getParentFolderId));
|
||||||
|
List<ApiCustomFolder> apiCustomGroups = apiGroupMap.get(null);
|
||||||
|
if (CollectionUtils.isEmpty(apiCustomGroups)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
return this.getCustomGroupChildren(apiCustomGroups, apiGroupMap, apiMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 递归获取目录树
|
||||||
|
*
|
||||||
|
* @author 暮光:城中城
|
||||||
|
* @since 2021-12-22
|
||||||
|
*/
|
||||||
|
private List<ApiCustomVo> getCustomGroupChildren(List<ApiCustomFolder> apiCustomGroups, Map<Long, List<ApiCustomFolder>> apiGroupMap, Map<Long, List<ApiCustomRequest>> apiMap) {
|
||||||
|
if (CollectionUtils.isEmpty(apiCustomGroups)) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
List<ApiCustomVo> apiCustomVoList = new LinkedList<>();
|
||||||
|
for (ApiCustomFolder customGroup : apiCustomGroups) {
|
||||||
|
List<ApiCustomRequest> apiCustomList = apiMap.get(customGroup.getId());
|
||||||
|
List<ApiCustomFolder> children = apiGroupMap.get(customGroup.getId());
|
||||||
|
List<ApiCustomVo> customGroupChildren = this.getCustomGroupChildren(children, apiGroupMap, apiMap);
|
||||||
|
ApiCustomVo apiCustomVo = new ApiCustomVo();
|
||||||
|
apiCustomVo.setName(customGroup.getFolderName());
|
||||||
|
apiCustomVo.setDesc(customGroup.getFolderDesc());
|
||||||
|
apiCustomVo.setChildren(customGroupChildren);
|
||||||
|
if (CollectionUtils.isNotEmpty(apiCustomList)) {
|
||||||
|
List<ApiCustomDocVo> apis = new LinkedList<>();
|
||||||
|
for (ApiCustomRequest apiCustom : apiCustomList) {
|
||||||
|
ApiCustomDocVo apiCustomDocVo = new ApiCustomDocVo();
|
||||||
|
apiCustomDocVo.setApiUrl(apiCustom.getApiUrl());
|
||||||
|
apiCustomDocVo.setApiName(apiCustom.getApiName());
|
||||||
|
apiCustomDocVo.setBodyData(apiCustom.getBodyData());
|
||||||
|
apiCustomDocVo.setCookieData(apiCustom.getCookieData());
|
||||||
|
apiCustomDocVo.setFormData(apiCustom.getFormData());
|
||||||
|
apiCustomDocVo.setHeaderData(apiCustom.getHeaderData());
|
||||||
|
apis.add(apiCustomDocVo);
|
||||||
|
}
|
||||||
|
apiCustomVo.setApis(apis);
|
||||||
|
}
|
||||||
|
apiCustomVoList.add(apiCustomVo);
|
||||||
|
}
|
||||||
|
return apiCustomVoList;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.ApiCustomFolderMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.ApiCustomGroupMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.ApiCustomMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.zyplayer.doc.data.repository.manage.mapper.ApiCustomRequestMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<artifactId>zyplayer-doc-manage</artifactId>
|
<artifactId>zyplayer-doc-manage</artifactId>
|
||||||
<packaging>jar</packaging>
|
<packaging>war</packaging>
|
||||||
|
|
||||||
<name>zyplayer-doc-manage</name>
|
<name>zyplayer-doc-manage</name>
|
||||||
<description>定位为所有文档的管理项目,API接口文档、dubbo文档、数据库文档、、、、等</description>
|
<description>定位为所有文档的管理项目,API接口文档、dubbo文档、数据库文档、、、、等</description>
|
||||||
|
|||||||
@@ -0,0 +1,74 @@
|
|||||||
|
-- ------------------------------------------------
|
||||||
|
-- 这是一个处于开发中的版本,变化快,中途变更不兼容
|
||||||
|
-- ------------------------------------------------
|
||||||
|
|
||||||
|
-- 每次发版时注意事项 ---
|
||||||
|
-- 1. datetime(0) 低版本不支持此语法,改为datetime
|
||||||
|
-- 2. utf8mb4 低版本不支持此字符集,改为utf8
|
||||||
|
-- 3. 加字段后记得排查是否有insert语句,需要同步修改
|
||||||
|
--
|
||||||
|
-- ------------------------从1.0.9版本升级------------------------
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_doc`;
|
||||||
|
CREATE TABLE `api_doc` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`name` varchar(100) DEFAULT NULL COMMENT '文档名称',
|
||||||
|
`doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组',
|
||||||
|
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址',
|
||||||
|
`json_content` mediumtext DEFAULT NULL COMMENT '文档json内容',
|
||||||
|
`rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名',
|
||||||
|
`open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是',
|
||||||
|
`doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
||||||
|
`share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID',
|
||||||
|
`share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_request_param`;
|
||||||
|
CREATE TABLE `api_request_param` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档url',
|
||||||
|
`form_data` text DEFAULT NULL COMMENT 'form参数',
|
||||||
|
`body_data` text DEFAULT NULL COMMENT 'body参数',
|
||||||
|
`header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数',
|
||||||
|
`cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_global_param`;
|
||||||
|
CREATE TABLE `api_global_param` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie',
|
||||||
|
`param_key` varchar(100) DEFAULT NULL COMMENT '参数名',
|
||||||
|
`param_value` varchar(1024) DEFAULT NULL COMMENT '参数值',
|
||||||
|
`param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录';
|
||||||
|
|
||||||
|
-- 权限表优化
|
||||||
|
ALTER TABLE `user_auth` ADD COLUMN `sys_type` int NULL COMMENT '系统类型,DocSysType',
|
||||||
|
ADD COLUMN `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType',
|
||||||
|
ADD COLUMN `sys_module_id` bigint(20) NULL COMMENT '系统模块ID';
|
||||||
|
-- 历史数据处理
|
||||||
|
update user_auth set sys_type=3, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'DB_', '') where auth_custom_suffix like 'DB_%';
|
||||||
|
update user_auth set sys_type=2, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'WIKI_', '') where auth_custom_suffix like 'WIKI_%';
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO `auth_info`(auth_name, auth_desc, can_edit, create_uid, creation_time, auth_type) VALUES
|
||||||
|
('API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0),
|
||||||
|
('API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0);
|
||||||
|
|
||||||
@@ -1,3 +1,10 @@
|
|||||||
|
-- ------------------------------------------------
|
||||||
|
-- 这是软件版本为:1.1.0的全量建表语句,初次部署可直接执行
|
||||||
|
-- 从低版本升级为1.1.0,请执行具体的增量升级SQL
|
||||||
|
-- 初次部署文档:http://doc.zyplayer.com/zyplayer-doc-manage/doc-wiki#/page/share/view?pageId=279&space=23f3f59a60824d21af9f7c3bbc9bc3cb
|
||||||
|
-- 升级指导文档:http://doc.zyplayer.com/zyplayer-doc-manage/doc-wiki#/page/share/view?pageId=284&space=23f3f59a60824d21af9f7c3bbc9bc3cb
|
||||||
|
-- ------------------------------------------------
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Navicat Premium Data Transfer
|
Navicat Premium Data Transfer
|
||||||
|
|
||||||
@@ -50,6 +57,8 @@ INSERT INTO `auth_info` VALUES (15, 'DB_SELECT_', '数据源查询权', 0, 1, '2
|
|||||||
INSERT INTO `auth_info` VALUES (16, 'DB_UPDATE_', '数据源增删改查权', 0, 1, '2019-08-18 23:25:17', 0);
|
INSERT INTO `auth_info` VALUES (16, 'DB_UPDATE_', '数据源增删改查权', 0, 1, '2019-08-18 23:25:17', 0);
|
||||||
INSERT INTO `auth_info` VALUES (17, 'DB_DESC_EDIT_', '表字段注释修改权', 0, 1, '2019-08-18 23:25:17', 0);
|
INSERT INTO `auth_info` VALUES (17, 'DB_DESC_EDIT_', '表字段注释修改权', 0, 1, '2019-08-18 23:25:17', 0);
|
||||||
INSERT INTO `auth_info` VALUES (18, 'DB_PROC_EDIT_', '存储过程修改权', 0, 1, '2021-04-24 23:25:17', 0);
|
INSERT INTO `auth_info` VALUES (18, 'DB_PROC_EDIT_', '存储过程修改权', 0, 1, '2021-04-24 23:25:17', 0);
|
||||||
|
INSERT INTO `auth_info` VALUES (19, 'API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0);
|
||||||
|
INSERT INTO `auth_info` VALUES (20, 'API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0);
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for db_datasource
|
-- Table structure for db_datasource
|
||||||
@@ -148,25 +157,27 @@ CREATE TABLE `user_auth` (
|
|||||||
`del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除',
|
`del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '是否删除 0=未删除 1=已删除',
|
||||||
`creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
`creation_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
|
||||||
`auth_custom_suffix` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '自定义权限结尾',
|
`sys_type` int NULL COMMENT '系统类型,DocSysType',
|
||||||
|
`sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType',
|
||||||
|
`sys_module_id` bigint(20) NULL COMMENT '系统模块ID',
|
||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户权限表' ROW_FORMAT = Compact;
|
) ENGINE = InnoDB AUTO_INCREMENT = 73 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户权限表' ROW_FORMAT = Compact;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records of user_auth
|
-- Records of user_auth
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `user_auth` VALUES (9, 2, 1, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (9, 2, 1, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (10, 2, 2, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (10, 2, 2, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (11, 2, 3, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (11, 2, 3, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (12, 2, 4, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (12, 2, 4, 1, NULL, 0, '2018-12-15 22:19:59', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (31, 3, 1, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (31, 3, 1, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (32, 3, 2, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (32, 3, 2, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (33, 3, 3, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (33, 3, 3, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (34, 3, 4, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (34, 3, 4, 1, NULL, 0, '2019-06-21 15:19:51', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (44, 1, 3, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (44, 1, 3, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (45, 1, 4, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (45, 1, 4, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (46, 1, 12, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (46, 1, 12, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL);
|
||||||
INSERT INTO `user_auth` VALUES (47, 1, 13, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL);
|
INSERT INTO `user_auth` VALUES (47, 1, 13, 1, NULL, 0, '2019-08-12 13:10:11', NULL, NULL, NULL, NULL);
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for user_info
|
-- Table structure for user_info
|
||||||
@@ -506,5 +517,54 @@ CREATE TABLE `db_table_relation` (
|
|||||||
PRIMARY KEY (`id`) USING BTREE
|
PRIMARY KEY (`id`) USING BTREE
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='表关系';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='表关系';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_doc`;
|
||||||
|
CREATE TABLE `api_doc` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`name` varchar(100) DEFAULT NULL COMMENT '文档名称',
|
||||||
|
`doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组',
|
||||||
|
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址',
|
||||||
|
`json_content` mediumtext DEFAULT NULL COMMENT '文档json内容',
|
||||||
|
`rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名',
|
||||||
|
`open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是',
|
||||||
|
`doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
||||||
|
`share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID',
|
||||||
|
`share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_request_param`;
|
||||||
|
CREATE TABLE `api_request_param` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档url',
|
||||||
|
`form_data` text DEFAULT NULL COMMENT 'form参数',
|
||||||
|
`body_data` text DEFAULT NULL COMMENT 'body参数',
|
||||||
|
`header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数',
|
||||||
|
`cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_global_param`;
|
||||||
|
CREATE TABLE `api_global_param` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie',
|
||||||
|
`param_key` varchar(100) DEFAULT NULL COMMENT '参数名',
|
||||||
|
`param_value` varchar(1024) DEFAULT NULL COMMENT '参数值',
|
||||||
|
`param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录';
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
|
|||||||
@@ -564,5 +564,39 @@ CREATE TABLE `api_global_param` (
|
|||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录';
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_custom_request`;
|
||||||
|
CREATE TABLE `api_custom_request` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`folder_id` bigint(20) DEFAULT NULL COMMENT '文件夹ID',
|
||||||
|
`api_name` varchar(250) DEFAULT NULL COMMENT '接口名称',
|
||||||
|
`api_url` text DEFAULT NULL COMMENT '接口url',
|
||||||
|
`form_data` text DEFAULT NULL COMMENT 'form参数',
|
||||||
|
`body_data` text DEFAULT NULL COMMENT 'body参数',
|
||||||
|
`header_data` text DEFAULT NULL COMMENT 'header参数',
|
||||||
|
`cookie_data` text DEFAULT NULL COMMENT 'cookie参数',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_doc_id` (`doc_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_custom_folder`;
|
||||||
|
CREATE TABLE `api_custom_folder` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`parent_folder_id` bigint(20) DEFAULT NULL COMMENT '父文件夹ID',
|
||||||
|
`folder_name` varchar(250) DEFAULT NULL COMMENT '文件夹名称',
|
||||||
|
`folder_desc` text DEFAULT NULL COMMENT '文件夹说明',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_doc_id` (`doc_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档文件夹';
|
||||||
|
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS = 1;
|
SET FOREIGN_KEY_CHECKS = 1;
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
-- ------------------------------------------------
|
|
||||||
-- 这是一个处于开发中的版本,变化快,中途变更不兼容
|
|
||||||
-- ------------------------------------------------
|
|
||||||
|
|
||||||
-- 每次发版时注意事项 ---
|
|
||||||
-- 1. datetime(0) 低版本不支持此语法,改为datetime
|
|
||||||
-- 2. utf8mb4 低版本不支持此字符集,改为utf8
|
|
||||||
-- 3. 加字段后记得排查是否有insert语句,需要同步修改
|
|
||||||
--
|
|
||||||
-- ------------------------从1.0.9版本升级------------------------
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `api_doc`;
|
|
||||||
CREATE TABLE `api_doc` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
|
||||||
`name` varchar(100) DEFAULT NULL COMMENT '文档名称',
|
|
||||||
`doc_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '文档类型 1=swagger url 2=swagger json 3=openapi url 4=openapi json 5=自建API分组',
|
|
||||||
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档URL地址',
|
|
||||||
`json_content` mediumtext DEFAULT NULL COMMENT '文档json内容',
|
|
||||||
`rewrite_domain` varchar(100) DEFAULT NULL COMMENT '重写的域名',
|
|
||||||
`open_visit` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否开放访问 0=否 1=是',
|
|
||||||
`doc_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
|
||||||
`share_uuid` varchar(50) DEFAULT NULL COMMENT '开放文档UUID',
|
|
||||||
`share_instruction` mediumtext DEFAULT NULL COMMENT '开放文档使用说明',
|
|
||||||
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
|
||||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
||||||
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档地址';
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `api_request_param`;
|
|
||||||
CREATE TABLE `api_request_param` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
|
||||||
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
|
||||||
`doc_url` varchar(250) DEFAULT NULL COMMENT '文档url',
|
|
||||||
`form_data` text DEFAULT NULL COMMENT 'form参数',
|
|
||||||
`body_data` text DEFAULT NULL COMMENT 'body参数',
|
|
||||||
`header_data` varchar(1024) DEFAULT NULL COMMENT 'header参数',
|
|
||||||
`cookie_data` varchar(1024) DEFAULT NULL COMMENT 'cookie参数',
|
|
||||||
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
|
||||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
||||||
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='文档请求参数记录';
|
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `api_global_param`;
|
|
||||||
CREATE TABLE `api_global_param` (
|
|
||||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
|
||||||
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
|
||||||
`param_type` tinyint(4) NOT NULL DEFAULT '1' COMMENT '参数类型 1=form 2=header 3=cookie',
|
|
||||||
`param_key` varchar(100) DEFAULT NULL COMMENT '参数名',
|
|
||||||
`param_value` varchar(1024) DEFAULT NULL COMMENT '参数值',
|
|
||||||
`param_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态 1=启用 2=禁用',
|
|
||||||
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
|
||||||
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
|
||||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
|
||||||
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
|
||||||
PRIMARY KEY (`id`)
|
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='api文档全局参数记录';
|
|
||||||
|
|
||||||
-- 权限表优化
|
|
||||||
ALTER TABLE `user_auth` ADD COLUMN `sys_type` int NULL COMMENT '系统类型,DocSysType',
|
|
||||||
ADD COLUMN `sys_module_type` int NULL COMMENT '系统模块类型,DocSysModuleType',
|
|
||||||
ADD COLUMN `sys_module_id` bigint(20) NULL COMMENT '系统模块ID';
|
|
||||||
-- 历史数据处理
|
|
||||||
update user_auth set sys_type=3, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'DB_', '') where auth_custom_suffix like 'DB_%';
|
|
||||||
update user_auth set sys_type=2, sys_module_type=1, sys_module_id=replace(auth_custom_suffix, 'WIKI_', '') where auth_custom_suffix like 'WIKI_%';
|
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO `auth_info`(auth_name, auth_desc, can_edit, create_uid, creation_time, auth_type) VALUES
|
|
||||||
('API_DOC_MANAGE', 'api文档管理权', 0, 1, '2021-12-12 23:25:17', 0),
|
|
||||||
('API_DOC_DEVELOPER', 'api文档编辑权', 0, 1, '2021-12-12 23:25:17', 0);
|
|
||||||
|
|
||||||
46
zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.1.sql
Normal file
46
zyplayer-doc-manage/src/main/resources/sql/增量更新语句.1.1.1.sql
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
-- ------------------------------------------------
|
||||||
|
-- 这是一个处于开发中的版本,变化快,中途变更不兼容
|
||||||
|
-- ------------------------------------------------
|
||||||
|
|
||||||
|
-- 每次发版时注意事项 ---
|
||||||
|
-- 1. datetime(0) 低版本不支持此语法,改为datetime
|
||||||
|
-- 2. utf8mb4 低版本不支持此字符集,改为utf8
|
||||||
|
-- 3. 加字段后记得排查是否有insert语句,需要同步修改
|
||||||
|
--
|
||||||
|
-- ------------------------从1.1.0版本升级------------------------
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_custom_request`;
|
||||||
|
CREATE TABLE `api_custom_request` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`folder_id` bigint(20) DEFAULT NULL COMMENT '文件夹ID',
|
||||||
|
`api_name` varchar(250) DEFAULT NULL COMMENT '接口名称',
|
||||||
|
`api_url` text DEFAULT NULL COMMENT '接口url',
|
||||||
|
`form_data` text DEFAULT NULL COMMENT 'form参数',
|
||||||
|
`body_data` text DEFAULT NULL COMMENT 'body参数',
|
||||||
|
`header_data` text DEFAULT NULL COMMENT 'header参数',
|
||||||
|
`cookie_data` text DEFAULT NULL COMMENT 'cookie参数',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_doc_id` (`doc_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档';
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `api_custom_folder`;
|
||||||
|
CREATE TABLE `api_custom_folder` (
|
||||||
|
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键自增ID',
|
||||||
|
`doc_id` bigint(20) DEFAULT NULL COMMENT 'api_doc主键ID',
|
||||||
|
`parent_folder_id` bigint(20) DEFAULT NULL COMMENT '父文件夹ID',
|
||||||
|
`folder_name` varchar(250) DEFAULT NULL COMMENT '文件夹名称',
|
||||||
|
`folder_desc` text DEFAULT NULL COMMENT '文件夹说明',
|
||||||
|
`create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID',
|
||||||
|
`create_user_name` varchar(20) DEFAULT NULL COMMENT '创建人名字',
|
||||||
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
|
`yn` tinyint(4) DEFAULT NULL COMMENT '是否有效 0=无效 1=有效',
|
||||||
|
PRIMARY KEY (`id`),
|
||||||
|
KEY `idx_doc_id` (`doc_id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='自建接口文档文件夹';
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user