All Projects → core-lib → Httpdoc

core-lib / Httpdoc

Licence: apache-2.0
基于Java标准doc注释构建的代码零侵入的HTTP RESTful API在线测试,文档阅览以及SDK导出框架,支持Spring-Boot和Spring-MVC

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Httpdoc

Spring Boot File Upload Download Rest Api Example
Spring Boot File Upload / Download Rest API Example
Stars: ✭ 300 (+1204.35%)
Mutual labels:  spring-boot, spring-mvc
Watchdog Framework
🍻 「停止维护」基于SpringBoot+Shiro+Mybatis等开发的轻量级管理系统快速开发脚手架
Stars: ✭ 421 (+1730.43%)
Mutual labels:  spring-boot, spring-mvc
Angularjs Springmvc Sample Boot
A RESTful sample using Spring Boot, Spring MVC, Spring Data and Angular/Bootstrap.
Stars: ✭ 309 (+1243.48%)
Mutual labels:  spring-boot, spring-mvc
Velocity Spring Boot Project
A Spring Boot Starter for velocity including Spring's official and Alibaba's implementation , e.g, Layout , Tools supports.
Stars: ✭ 285 (+1139.13%)
Mutual labels:  spring-boot, spring-mvc
Apollo
Apollo is a reliable configuration management system suitable for microservice configuration management scenarios.
Stars: ✭ 26,052 (+113169.57%)
Mutual labels:  spring-boot, spring-mvc
Angularjs Springmvc Sample
A RESTful sample using AnguarJS/Bootstrap as frontend and Spring MVC as REST API producer
Stars: ✭ 292 (+1169.57%)
Mutual labels:  spring-boot, spring-mvc
Spring Boot Demo
spring boot demo 是一个Spring Boot、Spring Cloud的项目示例,根据市场主流的后端技术,共集成了30+个demo,未来将持续更新。该项目包含helloworld(快速入门)、web(ssh项目快速搭建)、aop(切面编程)、data-redis(redis缓存)、quartz(集群任务实现)、shiro(权限管理)、oauth2(四种认证模式)、shign(接口参数防篡改重放)、encoder(用户密码设计)、actuator(服务监控)、cloud-config(配置中心)、cloud-gateway(服务网关)等模块
Stars: ✭ 323 (+1304.35%)
Mutual labels:  spring-boot, spring-mvc
Loc Framework
本项目是完全基于Spring Boot2和Springcloud Finchley所进行了开发的,目的是简化和统一公司内部使用微服务框架的使用方法
Stars: ✭ 238 (+934.78%)
Mutual labels:  spring-boot, spring-mvc
Springboot Starterkit
Starter Kit for Spring Boot based (REST APIs and WebMVC) micro services.
Stars: ✭ 596 (+2491.3%)
Mutual labels:  spring-boot, spring-mvc
Heart First Javaweb
一个走心的 Java Web 入门开发教程
Stars: ✭ 561 (+2339.13%)
Mutual labels:  spring-boot, spring-mvc
Ifast
ifast,中小型企业项目开发脚手架,以基础建设和实用性为主。代码简洁易懂。
Stars: ✭ 266 (+1056.52%)
Mutual labels:  spring-boot, spring-mvc
Javaquarkbbs
基于Spring Boot实现的一个简易的Java社区
Stars: ✭ 755 (+3182.61%)
Mutual labels:  spring-boot, spring-mvc
Spring Boot Enterprise Application Development
Spring Boot Enterprise Application Development.《Spring Boot 企业级应用开发实战》
Stars: ✭ 261 (+1034.78%)
Mutual labels:  spring-boot, spring-mvc
Journaldev
JournalDev Projects
Stars: ✭ 897 (+3800%)
Mutual labels:  spring-boot, spring-mvc
Spring Boot Demo
Spring Boot & Spring Cloud & Spring Security Demo Case(Spring学习示例实战项目)
Stars: ✭ 255 (+1008.7%)
Mutual labels:  spring-boot, spring-mvc
Efo
EFO是一个基于SpringBoot和Vue构建的文件分享系统,包括文件的上传与下载,文件的权限管理,远程文件管理等功能。
Stars: ✭ 327 (+1321.74%)
Mutual labels:  spring-boot, spring-mvc
Kvf Admin
kvf-admin是一套基于springboot、mybatis、shiro及layui的轻量级快速开发框架、脚手架、后台管理系统、权限系统、基于activiti6整合的工作流OA系统,上手简单,拿来即用。
Stars: ✭ 209 (+808.7%)
Mutual labels:  spring-boot, spring-mvc
Tutorial
Spring Boot的例子,包含RESTful API, MVC, JMS, Cache, Mybatis, Cache, Websocket...
Stars: ✭ 215 (+834.78%)
Mutual labels:  spring-boot, spring-mvc
Spring Lemon
Helper library for Spring Boot web applications
Stars: ✭ 529 (+2200%)
Mutual labels:  spring-boot, spring-mvc
Mini Spring
mini-spring是简化版的spring框架,能帮助你快速熟悉spring源码和掌握spring的核心原理。抽取了spring的核心逻辑,代码极度简化,保留spring的核心功能,如IoC和AOP、资源加载器、事件监听器、类型转换、容器扩展点、bean生命周期和作用域、应用上下文等核心功能。
Stars: ✭ 698 (+2934.78%)
Mutual labels:  spring-boot, spring-mvc

HttpDoc

基于Java标准doc注释构建的代码零侵入的HTTP RESTful API在线测试,文档阅览以及SDK导出框架,支持Spring-Boot和Spring-MVC

JSON-Editor: httpdoc-ui TextArea: httpdoc-ui-v1

功能特性

  • 基础功能无需为配合HttpDoc框架而多写一句代码,甚至连doc注释都不必写,即可拥有项目的API文档和测试界面。
  • 遵循 RFC 2616 HTTP/1.1 规范,适配主流后台WEB框架。
  • 拓展多个 Java Doc 注释标签,满足不同的文档阅览及在线测试需求。
  • 一键生成SDK,支持多个平台,让前后台以及跨平台对接变得更简单。
  • WEB服务器无关,同时支持 Spring Boot 命令方式启动。
  • 支持 Maven Gradle 或JAR包依赖。

环境依赖

JDK 1.7 +

集成步骤

Maven

  1. 引入依赖
<project>
    <!-- 设置 jitpack.io 仓库 -->
    <repositories>
        <repository>
            <id>jitpack.io</id>
            <url>https://jitpack.io</url>
        </repository>
    </repositories>

    <dependencies>
        <!-- 添加 HttpDoc 依赖 -->
        <dependency>
            <groupId>com.github.core-lib.httpdoc</groupId>
            <artifactId>httpdoc-spring-mvc</artifactId>
            <version>v1.8.1</version>
        </dependency>
        
        <!-- 添加JDK的tools.jar依赖用于解析源码注释,采用这种方式部署到Tomcat时需要往Tomcat的lib目录增加该tools.jar -->
        <dependency>
            <groupId>com.sun</groupId>
            <artifactId>tools</artifactId>
            <version>1.8</version>
            <scope>system</scope>
            <systemPath>${env.JAVA_HOME}/lib/tools.jar</systemPath>
        </dependency>
        <!-- 当然还有很多种方式来依赖tools.jar,例如上传到自己的私服或从别的仓库中依赖进来 -->
    </dependencies>
</project>
  1. 配置插件
<!-- 由于框架基于源码注释解析来实现,所以保留源码是基础,如果只想要在线测试而没有文档阅览的需求,可不必添加该插件。-->
<!-- 如果项目是多模块项目,需要被解析的源码类分散在多模块中,则其他模块也需要配置该插件,或在父项目的pom.xml中配置该插件。-->
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <encoding>UTF-8</encoding>
    </configuration>
    <executions>
        <execution>
            <id>copy-src</id>
            <phase>process-sources</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <outputDirectory>${project.build.directory}/classes</outputDirectory>
                <resources>
                    <resource>
                        <directory>${basedir}/src/main/java</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
  1. 配置参数
  • SpringMVC

    • web.xml 中增加一个servlet和servlet-mapping标签
    <web-app>
        <servlet>
            <servlet-name>httpdoc</servlet-name>
            <servlet-class>io.httpdoc.web.HttpdocServletSupport</servlet-class>
            <init-param>
                <param-name>packages</param-name>
                <param-value>io.httpdoc.sample</param-value>
            </init-param>
            <init-param>
                <param-name>httpdoc</param-name>
                <param-value>项目名称</param-value>
            </init-param>
            <init-param>
                <param-name>version</param-name>
                <param-value>项目版本</param-value>
            </init-param>
            <init-param>
                <param-name>description</param-name>
                <param-value>
                    <![CDATA[
                        项目描述(可以内嵌HTML标签)
                    ]]>
                </param-value>
            </init-param>
            <init-param>
                <param-name>dateFormat</param-name>
                <param-value>yyyy-MM-dd HH:mm:ss</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        
        <servlet-mapping>
            <servlet-name>httpdoc</servlet-name>
            <url-pattern>/httpdoc.json</url-pattern>
        </servlet-mapping>
    </web-app>
    
    • spring-servlet.xml 中增加一个标签以允许浏览器访问HttpDoc的页面静态资源
    <mvc:resources mapping="/httpdoc-ui/**" location="classpath:/META-INF/resources/httpdoc-ui/"/>
    
  • Spring Boot

    • 如果是Spring Boot项目则不需要上面SpringMVC的两个配置,实际上 Spring Boot 项目也没有web.xml文件来做配置。
    • 只需要将httpdoc-spring-mvc依赖替换成下面的依赖并在项目入口主类上标注一个@EnableHttpdoc() 注解即可,对应的参数也可以在注解上设置。
    <dependency>
      <groupId>com.github.core-lib.httpdoc</groupId>
      <artifactId>httpdoc-spring-boot</artifactId>
      <version>v1.8.1</version>
    </dependency>
    
    @SpringBootApplication
    @EnableHttpdoc(
          packages = {"io.httpdoc.sample"},
          httpdoc = "服务名称", 
          version = "服务版本", 
          description = "服务描述-支持HTML语法。"
    )
    public class HttpdocApplication {   
        public static void main(String[] args) {
            SpringApplication.run(HttpdocApplication.class, args);
        }
    }
    

参数说明

参数名称 参数说明 缺省值
packages 源码包名 必填参数,支持配置多个,通过英文逗号,空格及换行符拆分,支持递归搜索
httpdoc 项目名称 HttpDoc
version 项目版本 1.0.0
description 项目描述 可以用套起来并使用HTML标签语法
protocol 访问协议 http或https,缺省为request.getProtocol();
hostname 主机名 request.getServerName();
port 端口号 request.getServerPort();
context 容器路径 request.getContextPath();
dateFormat 日期格式 yyyy-MM-dd HH:mm:ss
translator 文档翻译器 自动匹配当前项目的WEB框架
interpreter 文档解释器 源码解释器
serializer 文档序列化器 JSON序列化器,所以项目中需要依赖jackson-databind

在线示例

项目中的httpdoc-sample模块就是一个HttpDoc + SpringMVC的一个标准示例,可checkout后查看源码和编译运行查看效果,也可立即预览:JSON-Editor: httpdoc-ui TextArea: httpdoc-ui-v1

变更记录

  • v1.8.1
    • 适配应用被反向代理后前端测试域名获取不正确问题
  • v1.8.0
    • 修复BaseURL与接口相对路径问题
  • v1.7.9
    • 修复BaseURL与接口相对路径问题
  • v1.7.8
    • UI 默认采用 grid 方式展示API参数
  • v1.7.7
    • 升级LoadKit依赖版本解决ANT表达式无法正确匹配**/*通配符的问题
  • v1.7.6
    • ObjC 生成时采用 BOOL 代替 bool
  • v1.7.5
    • 测试界面 空对象/空值 参数不参与json序列化
  • v1.7.4
    • iOS SDK 生成bug修复
  • v1.7.3
    • boolean 类型字段 getter 方法从 get 改为 is 开头
  • v1.7.2
    • retrofit2 客户端 增加 RxJava 的支持
  • v1.7.1
    • 整理 pom 依赖
    • 解决SDK导出中文乱码问题
    • 升级 Jestful 依赖版本
  • v1.7.0
    • 修复 Retrofit 及 Retrofit 2 生成 API 方法时没有带上参数注释问题
  • v1.6.9
    • 增加对 retrofit 1 的支持
    • 修改 retrofit 2 模块的包名
  • v1.6.8
    • 可通过参数配置SDK导出形式
    • 开放更多第三方拓展能力
  • v1.6.7
    • 修复当没有源码时重复构建文档的bug
    • 重构多个 Translator 实现 使之可以更容易拓展
  • v1.6.6
    • 修复生成Model中包含java关键字的问题
    • Controller中增加别名支持
  • v1.6.5
    • 按照bean属性定义的顺序排列
    • 采用LoadKit替代Detector
  • v1.6.4
    • 优化SDK导出的压缩包结构
  • v1.6.3
    • 增加packages参数用于筛选需要解析的源码包,支持多个源码包和递归搜索。
    • 优化源码提取逻辑,适配更多启动模式。
  • v1.6.2
    • 升级detector框架依赖
  • v1.6.1
    • UI 展示的优化
  • v1.6.0
    • 采用detector框架的方式进行多模块集成
  • v1.5.9
    • 采用SoftReference来引用文档对象,避免空闲时占用过多JVM内存。
    • 增加Exporter接口用于导出SDK
    • 界面上可以下载SDK
  • v1.5.8
    • 增加Schema的全局设置
    • 适配递归Schema的问题
  • v1.5.7
    • 增加JSONEditor的前端实现
    • 增加@style标签用于控制参数展示的样式
  • v1.5.6
    • 修复带中文或空格路径的解析失败bug
    • 适配Unix系统路径分隔符
    • 注释读取日志显示
  • v1.5.5
    • 增加Lifecycle接口让实现类可以监听initial和destroy事件以及用户配置信息
  • v1.5.4
    • 极大提升源码注释解析速度
    • 修复spring-boot模块的依赖,增加spring-mvc依赖
  • v1.5.3
    • 优化项目依赖让项目集成更简单
    • 默认采用JSON文档序列化器
  • v1.5.2
    • 第一个正式版发布
  • v1.5.1
    • 增加示例模块
    • 增加README.md

协议声明

Apache-2.0

联系作者

QQ 646742615 不会钓鱼的兔子

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].