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 />

相关文章
|
15天前
|
缓存 Java 应用服务中间件
随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架
【9月更文挑战第6天】随着微服务架构的兴起,Spring Boot凭借其快速开发和易部署的特点,成为构建RESTful API的首选框架。Nginx作为高性能的HTTP反向代理服务器,常用于前端负载均衡,提升应用的可用性和响应速度。本文详细介绍如何通过合理配置实现Spring Boot与Nginx的高效协同工作,包括负载均衡策略、静态资源缓存、数据压缩传输及Spring Boot内部优化(如线程池配置、缓存策略等)。通过这些方法,开发者可以显著提升系统的整体性能,打造高性能、高可用的Web应用。
45 2
|
1月前
|
Java API 数据中心
百炼平台Java 集成API上传文档到数据中心并添加索引
本文主要演示阿里云百炼产品,如何通过API实现数据中心文档的上传和索引的添加。
|
2月前
|
安全 Java API
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
这篇文章介绍了Swagger,它是一组开源工具,围绕OpenAPI规范帮助设计、构建、记录和使用RESTAPI。文章主要讨论了Swagger的主要工具,包括SwaggerEditor、SwaggerUI、SwaggerCodegen等。然后介绍了如何在Nest框架中集成Swagger,展示了安装依赖、定义DTO和控制器等步骤,以及如何使用Swagger装饰器。文章最后总结说,集成Swagger文档可以自动生成和维护API文档,规范API标准化和一致性,但会增加开发者工作量,需要保持注释和装饰器的准确性。
Nest.js 实战 (三):使用 Swagger 优雅地生成 API 文档
|
2月前
|
开发框架 Java 测试技术
Spring Boot中的API文档生成
Spring Boot中的API文档生成
|
2月前
|
安全 Java API
构建基于Spring Boot的REST API安全机制
构建基于Spring Boot的REST API安全机制
|
2月前
|
Java API 数据库
使用Spring Boot构建RESTful API
使用Spring Boot构建RESTful API
|
API
SenchaTouch 2.4 离线api文档下载
http://pan.baidu.com/s/1jG5THZK
903 0
|
1月前
|
机器人 API Python
智能对话机器人(通义版)会话接口API使用Quick Start
本文主要演示了如何使用python脚本快速调用智能对话机器人API接口,在参数获取的部分给出了具体的获取位置截图,这部分容易出错,第一次使用务必仔细参考接入参数获取的位置。
100 1
|
22天前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
1月前
|
SQL 存储 数据处理