From 639d00a9f86d83f39301db818c9a86e43045b4b3 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期六, 17 九月 2022 01:29:44 +0800
Subject: [PATCH] 开发接口文档功能

---
 service-api/src/main/java/com/java110/api/rest/RestApi.java                  |    4 
 java110-doc/src/main/java/com/java110/doc/annotation/Java110ApiDoc.java      |   40 ++++++++++
 java110-doc/src/main/java/com/java110/doc/controller/DocController.java      |   27 ++++++
 java110-doc/src/main/java/com/java110/doc/annotation/Java110ResponseDoc.java |   23 +++++
 java110-doc/pom.xml                                                          |   34 ++++++++
 java110-doc/src/test/java/com/java110/AppTest.java                           |   20 +++++
 java110-doc/src/main/java/com/java110/doc/annotation/Java110CmdDoc.java      |   44 +++++++++++
 pom.xml                                                                      |    1 
 java110-doc/src/main/java/com/java110/doc/annotation/Java110HeaderDoc.java   |   10 ++
 java110-doc/src/main/java/com/java110/doc/annotation/Java110ParamDoc.java    |    8 ++
 10 files changed, 208 insertions(+), 3 deletions(-)

diff --git a/java110-doc/pom.xml b/java110-doc/pom.xml
new file mode 100644
index 0000000..089d2df
--- /dev/null
+++ b/java110-doc/pom.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCommunity</artifactId>
+        <groupId>com.java110</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>java110-doc</artifactId>
+
+    <name>java110-doc</name>
+    <!-- FIXME change it to the project's website -->
+    <url>http://www.example.com</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.compiler.source>1.7</maven.compiler.source>
+        <maven.compiler.target>1.7</maven.compiler.target>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <version>4.11</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+
+</project>
diff --git a/java110-doc/src/main/java/com/java110/doc/annotation/Java110ApiDoc.java b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ApiDoc.java
new file mode 100644
index 0000000..cbba300
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ApiDoc.java
@@ -0,0 +1,40 @@
+package com.java110.doc.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * java110 api document annotation
+ *
+ * add by wuxw
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Java110ApiDoc {
+
+    /**
+     *  api title
+     * @return
+     */
+    String title();
+
+    /**
+     * description api
+     * @return
+     */
+    String description() default "";
+
+
+    /**
+     *  api  version
+     * @return
+     */
+    String version() default "v1.0";
+
+
+
+    String company() default "";
+
+}
diff --git a/java110-doc/src/main/java/com/java110/doc/annotation/Java110CmdDoc.java b/java110-doc/src/main/java/com/java110/doc/annotation/Java110CmdDoc.java
new file mode 100644
index 0000000..0b3276b
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/annotation/Java110CmdDoc.java
@@ -0,0 +1,44 @@
+package com.java110.doc.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Java110CmdDoc {
+
+    /**
+     *  api title
+     * @return
+     */
+    String title();
+
+    /**
+     * description api
+     * @return
+     */
+    String description() default "";
+
+
+    /**
+     *  api  version
+     * @return
+     */
+    String version() default "v1.0";
+
+    /**
+     * http method
+     * @return
+     */
+    String httpMethod() default "";
+
+    /**
+     * request url
+     * @return
+     */
+    String url();
+
+
+}
diff --git a/java110-doc/src/main/java/com/java110/doc/annotation/Java110HeaderDoc.java b/java110-doc/src/main/java/com/java110/doc/annotation/Java110HeaderDoc.java
new file mode 100644
index 0000000..bc1a4f8
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/annotation/Java110HeaderDoc.java
@@ -0,0 +1,10 @@
+package com.java110.doc.annotation;
+
+public @interface Java110HeaderDoc {
+
+    String name();
+
+    String defaultValue() default "";
+
+    String description() default "";
+}
diff --git a/java110-doc/src/main/java/com/java110/doc/annotation/Java110ParamDoc.java b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ParamDoc.java
new file mode 100644
index 0000000..5f44b92
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ParamDoc.java
@@ -0,0 +1,8 @@
+package com.java110.doc.annotation;
+
+import java.lang.reflect.Array;
+
+public @interface Java110ParamDoc {
+
+    String[] headers();
+}
diff --git a/java110-doc/src/main/java/com/java110/doc/annotation/Java110ResponseDoc.java b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ResponseDoc.java
new file mode 100644
index 0000000..94cf978
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/annotation/Java110ResponseDoc.java
@@ -0,0 +1,23 @@
+package com.java110.doc.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * request param
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Java110ResponseDoc {
+
+
+    /**
+     * request param
+     *
+     * parent|name|type|length|detail|example
+     * @return
+     */
+    String[] params();
+}
diff --git a/java110-doc/src/main/java/com/java110/doc/controller/DocController.java b/java110-doc/src/main/java/com/java110/doc/controller/DocController.java
new file mode 100644
index 0000000..7af6b92
--- /dev/null
+++ b/java110-doc/src/main/java/com/java110/doc/controller/DocController.java
@@ -0,0 +1,27 @@
+package com.java110.doc.controller;
+
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+
+@RequestMapping(value = "/doc")
+public class DocController {
+
+    @RequestMapping(path = "/api", method = RequestMethod.GET)
+    public ResponseEntity<String> html(
+            HttpServletRequest request){
+        return new ResponseEntity<>("<html></html>", HttpStatus.OK);
+    }
+
+    @RequestMapping(path = "/api/{resource}/{serviceCode}", method = RequestMethod.GET)
+    public ResponseEntity<String> api( @PathVariable String resource,
+                                       @PathVariable String serviceCode,
+                                       HttpServletRequest request){
+        return null;
+    }
+}
diff --git a/java110-doc/src/test/java/com/java110/AppTest.java b/java110-doc/src/test/java/com/java110/AppTest.java
new file mode 100644
index 0000000..9605bca
--- /dev/null
+++ b/java110-doc/src/test/java/com/java110/AppTest.java
@@ -0,0 +1,20 @@
+package com.java110;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest 
+{
+    /**
+     * Rigorous Test :-)
+     */
+    @Test
+    public void shouldAnswerWithTrue()
+    {
+        assertTrue( true );
+    }
+}
diff --git a/pom.xml b/pom.xml
index 503e43f..996a26e 100755
--- a/pom.xml
+++ b/pom.xml
@@ -30,6 +30,7 @@
         <module>service-dev</module>
         <module>springboot</module>
         <module>java110-boot</module>
+        <module>java110-doc</module>
 
     </modules>
 
diff --git a/service-api/src/main/java/com/java110/api/rest/RestApi.java b/service-api/src/main/java/com/java110/api/rest/RestApi.java
index eeb0907..b7e8f3f 100755
--- a/service-api/src/main/java/com/java110/api/rest/RestApi.java
+++ b/service-api/src/main/java/com/java110/api/rest/RestApi.java
@@ -7,9 +7,7 @@
 import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.utils.constant.CommonConstant;
 import com.java110.vo.ResultVo;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.*;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;

--
Gitblit v1.8.0