Spring3 MVC中使用Swagger生成API文档

简介: Spring3 MVC中使用Swagger生成API文档

Spring3 MVC中使用Swagger生成API文档


一:Swagger介绍


Swagger是当前最好用的Restful API文档生成的开源项目,通过swagger-spring项目


实现了与SpingMVC框架的无缝集成功能,方便生成spring restful风格的接口文档,


同时swagger-ui还可以测试spring restful风格的接口功能。其官方网站为:


http://swagger.io/


二:Swagger集成Spring3 MVC步骤


Swagger集成springMVC步骤大致只有如下几步:


1.在pom.xml文件中添加swagger相关的依赖

                <!-- swagger API document -->
    <dependency>
      <groupId>com.mangofactory</groupId>
      <artifactId>swagger-springmvc</artifactId>
      <version>0.6.5</version>
    </dependency>

2.创建classpath路径下创建一个swagger.properties, 添加如下内容:


documentation.services.version=1.0


documentation.services.basePath=http://localhost:8080/yourcontextpath


3.在springMVC的main-servlet.xml文件添加如下配置

  <context:property-placeholder location="classpath:swagger.properties" />
  <bean id="documentationConfig" class="com.mangofactory.swagger.configuration.DocumentationConfig" />

4.重新打包部署你的项目到WEB服务器,访问地址


http://localhost:8080/your-contextpath /api-docs即可看到注解生成的API说明


三:常见swagger注解一览与使用


APIs.@Api


@ApiClass


@ApiError


@ApiErrors


@ApiOperation


@ApiParam


@ApiParamImplicit


@ApiParamsImplicit


@ApiProperty


@ApiResponse


@ApiResponses


@ApiModel


在代码中使用例子:

import java.util.HashMap;
import java.util.Map;
 
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
 
import com.wordnik.swagger.annotations.ApiOperation;
 
@Controller
@RequestMapping("/api/swagger")
public class SwaggerDemoController {
  private static final Logger logger = LoggerFactory.getLogger(SwaggerDemoController.class);
  
  @ApiOperation(value = "query api basic information")
  @RequestMapping(value = "/info", method = RequestMethod.GET)
  @ResponseBody
  public Map<String, String> queryAPIInfo() {
    logger.info("查询更新新版本号");
    Map<String, String> map = new HashMap<String, String>();
    map.put("language", "Java");
    map.put("format", "JSON");
    map.put("tools", "swagger");
    map.put("version", "1.0");
    return map;
  }
  
  @ApiOperation(value = "query data with parameters")
  @RequestMapping(value = "/data", method = RequestMethod.GET)
  @ResponseBody
  public Map<String, String> queryData(@RequestParam String words) {
    logger.info("查询更新新版本号");
    Map<String, String> map = new HashMap<String, String>();
    map.put("keyword", words);
    map.put("data", "this is demo data");
    return map;
  }
}

四:运行swagger-ui测试接口


下载swagger-ui的最新版本到本地,改名为swagger-ui,把dist下面的部署到tomcat


或者任何WEB服务器上,启动后访问如下地址: http://localhost:8080/swagger-ui


注意把swagger-ui中的index.html中的http://petstore.swagger.io/v2/swagger.json改为


http://localhost:8080/your-contextpath /api-docs保存,然后在启动WEB服务器,

显示如下:

展开输入参数以后,点击【try it out】即可测试接口,查看返回数据。

注意:加上之后启动报Bean not found mapping之类的错误,请在对应

xml文件中加上如下的配置:

<context:annotation-config />
<mvc:default-servlet-handler />

相关文章
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
15 2
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
1月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
84 1
|
1月前
|
JSON 前端开发 Java
SSM:SpringMVC
本文介绍了SpringMVC的依赖配置、请求参数处理、注解开发、JSON处理、拦截器、文件上传下载以及相关注意事项。首先,需要在`pom.xml`中添加必要的依赖,包括Servlet、JSTL、Spring Web MVC等。接着,在`web.xml`中配置DispatcherServlet,并设置Spring MVC的相关配置,如组件扫描、默认Servlet处理器等。然后,通过`@RequestMapping`等注解处理请求参数,使用`@ResponseBody`返回JSON数据。此外,还介绍了如何创建和配置拦截器、文件上传下载的功能,并强调了JSP文件的放置位置,避免404错误。
|
1月前
|
前端开发 Java 应用服务中间件
【Spring】Spring MVC的项目准备和连接建立
【Spring】Spring MVC的项目准备和连接建立
53 2
|
2月前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
1月前
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
111 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
2月前
|
前端开发 Java Spring
【非降版本解决】高版本Spring boot Swagger 报错解决方案
【非降版本解决】高版本Spring boot Swagger 报错解决方案
|
2月前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
3月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】

热门文章

最新文章