瀏覽代碼

开发接口文档功能

wuxw 3 年之前
父節點
當前提交
639d00a9f8

+ 34 - 0
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>

+ 40 - 0
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 "";
+
+}

+ 44 - 0
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();
+
+
+}

+ 10 - 0
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 "";
+}

+ 8 - 0
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();
+}

+ 23 - 0
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();
+}

+ 27 - 0
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;
+    }
+}

+ 20 - 0
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 );
+    }
+}

+ 1 - 0
pom.xml

@@ -30,6 +30,7 @@
         <module>service-dev</module>
         <module>springboot</module>
         <module>java110-boot</module>
+        <module>java110-doc</module>
 
     </modules>
 

+ 1 - 3
service-api/src/main/java/com/java110/api/rest/RestApi.java

@@ -7,9 +7,7 @@ import com.java110.core.log.LoggerFactory;
 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;