diff --git a/README.md b/README.md
index 5cd70200..d084df6d 100644
--- a/README.md
+++ b/README.md
@@ -28,19 +28,23 @@
> 支持zookeeper、nacos的注册中心文档获取,支持在线调试接口
##### 六、zyplayer-doc-wiki wiki文档工具
-> 暂时处于开发阶段,暂不能使用
-> 目标是支持文档创建、展示,文件上传、下载,空间隔离,页面权限控制等
+> 支持文档创建、展示,文件上传、下载,空间隔离,开放文档访问等
+
+##### 七、zyplayer-doc-grpc grpc文档工具
+> 用比较变态的方式实现了grpc的文档和在线调试功能,通过http的方式来请求grpc的接口
+
+> 默认未开启此功能,如需使用需要在zyplayer-doc-manage项目中开启@EnableDocGrpc注解
#### 运行方式
-1. 创建数据库:zyplayer_doc_manage,执行脚本:[zyplayer_doc_manage.sql](https://gitee.com/zyplayer/zyplayer-doc/blob/master/zyplayer-doc-manage/src/main/resources/sql/zyplayer_doc_manage.sql)
+1. 创建数据库:zyplayer_doc_manage,执行脚本:[zyplayer_doc_manage.1.0.1.sql](https://gitee.com/zyplayer/zyplayer-doc/blob/master/zyplayer-doc-manage/src/main/resources/sql/zyplayer_doc_manage.1.0.1.sql)
2. 修改zyplayer-doc-manage项目的application.yml配置文件里面的数据库账号密码
3. 启动zyplayer-doc-manage项目,访问地址:
http://127.0.0.1:8082/zyplayer-doc-manage/static/manage/home.html
未登录会进入登录页面,登陆后自动跳回,默认账号:zyplayer 密码:123456
-> 项目页面全是静态的html,如果使用idea启动,有可能访问不了静态页面,需要在这里配置下工作目录,然后重新启动即可
+> 注意!!项目页面全是静态的html,如果使用idea启动,有可能访问不了静态页面,需要在这里配置下工作目录,然后重新启动即可

#### 功能介绍
diff --git a/pom.xml b/pom.xml
index 59fdb29a..f788c2c5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,5 +25,6 @@
zyplayer-doc-dubbo
zyplayer-doc-wiki
zyplayer-doc-data
+ zyplayer-doc-grpc
diff --git a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/EnableDocDb.java b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/EnableDocDb.java
index 0c93e490..36ab3c95 100644
--- a/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/EnableDocDb.java
+++ b/zyplayer-doc-db/src/main/java/com/zyplayer/doc/db/framework/configuration/EnableDocDb.java
@@ -1,14 +1,14 @@
package com.zyplayer.doc.db.framework.configuration;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
-@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
-@Target(value = { java.lang.annotation.ElementType.TYPE })
+import java.lang.annotation.*;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
@Documented
+@Configuration
@ComponentScan(basePackages = {
"com.zyplayer.doc.db",
})
diff --git a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java
index 7f627b4d..2d563b44 100644
--- a/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java
+++ b/zyplayer-doc-dubbo/src/main/java/com/zyplayer/doc/dubbo/framework/config/EnableDocDubbo.java
@@ -1,14 +1,14 @@
package com.zyplayer.doc.dubbo.framework.config;
import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
-import java.lang.annotation.Documented;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
+import java.lang.annotation.*;
-@Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
-@Target(value = { java.lang.annotation.ElementType.TYPE })
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
@Documented
+@Configuration
@ComponentScan(basePackages = {
"com.zyplayer.doc.dubbo",
})
diff --git a/zyplayer-doc-grpc/pom.xml b/zyplayer-doc-grpc/pom.xml
new file mode 100644
index 00000000..8f1eb380
--- /dev/null
+++ b/zyplayer-doc-grpc/pom.xml
@@ -0,0 +1,161 @@
+
+
+ 4.0.0
+
+ com.zyplayer
+ zyplayer-doc-grpc
+ 1.0.1
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.4.2.RELEASE
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+ 1.16.1
+ 3.6.1
+ 0.0.3
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba
+ fastjson
+ 1.2.56
+
+
+ io.grpc
+ grpc-netty
+ ${grpc.version}
+
+
+ io.grpc
+ grpc-protobuf
+ ${grpc.version}
+
+
+ com.nxest.grpc
+ grpc-java-spring
+ ${grpc-java-spring.version}
+
+
+ com.zyplayer
+ zyplayer-doc-core
+ 1.0.1
+
+
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+
+
+
+ scm:git@git.oschina.net:zyplayer/zyplayer-doc.git
+ scm:git@git.oschina.net:zyplayer/zyplayer-doc.git
+ git@git.oschina.net:zyplayer/zyplayer-doc.git
+
+
+
+
+ snapshots
+ https://oss.sonatype.org/content/repositories/snapshots/
+
+
+ snapshots
+ https://oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
+
+
+ kr.motd.maven
+ os-maven-plugin
+ 1.5.0.Final
+
+
+
+
+ src/main/resources
+ META-INF/resources/
+
+
+ src/main/java
+
+ **/*
+
+
+ **/*.java
+
+ false
+
+
+ src/main/webapp
+
+ **/*
+
+ false
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.0.0
+
+
+ add-resource
+ generate-resources
+
+ add-resource
+
+
+
+
+ src/main/java
+ src/main/proto
+ src/main/resources
+
+
+
+
+
+
+
+ org.xolstice.maven.plugins
+ protobuf-maven-plugin
+ 0.5.1
+
+ com.google.protobuf:protoc:${protoc.version}:exe:${os.detected.classifier}
+
+ grpc-java
+ io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}
+
+ src/main/proto
+
+
+
+
+ compile
+ compile-custom
+
+
+
+
+
+
+
+
diff --git a/zyplayer-doc-grpc/src/main/java/com/zyplayer/doc/grpc/controller/GrpcDocController.java b/zyplayer-doc-grpc/src/main/java/com/zyplayer/doc/grpc/controller/GrpcDocController.java
new file mode 100644
index 00000000..235fd3c3
--- /dev/null
+++ b/zyplayer-doc-grpc/src/main/java/com/zyplayer/doc/grpc/controller/GrpcDocController.java
@@ -0,0 +1,368 @@
+package com.zyplayer.doc.grpc.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.google.protobuf.ByteString;
+import com.nxest.grpc.client.GrpcChannelFactory;
+import com.nxest.grpc.server.GrpcService;
+import com.zyplayer.doc.core.exception.ConfirmException;
+import com.zyplayer.doc.core.json.DocResponseJson;
+import com.zyplayer.doc.grpc.controller.po.ColumnInfo;
+import com.zyplayer.doc.grpc.controller.po.GrpcDocInfo;
+import com.zyplayer.doc.grpc.controller.po.GrpcServiceAndColumn;
+import com.zyplayer.doc.grpc.controller.po.MethodParam;
+import com.zyplayer.doc.grpc.framework.config.SpringContextUtil;
+import com.zyplayer.doc.grpc.framework.consts.Const;
+import io.grpc.Channel;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.lang.reflect.Method;
+import java.lang.reflect.Type;
+import java.util.HashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * grpc文档控制器
+ *
+ * @author 暮光:城中城
+ * @since 2019年3月31日
+ */
+@RestController
+@RequestMapping("/zyplayer-doc-grpc")
+public class GrpcDocController {
+
+ @Resource
+ GrpcChannelFactory grpcChannelFactory;
+ private static Map allColumnsMap = new HashMap<>();
+ private static Map allBlockingStubMap = new HashMap<>();
+
+ /**
+ * 查找所有文档
+ *
+ * @author 暮光:城中城
+ * @since 2019年3月31日
+ */
+ @RequestMapping("/service")
+ public DocResponseJson service() {
+ List