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