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

相关文章
|
5月前
|
人工智能 安全 架构师
告别旅行规划的"需求文档地狱"!这个AI提示词库,让你像调API一样定制完美旅程
作为开发者,旅行规划如同“需求地狱”:信息碎片、需求多变、缺乏测试。本文提出一套“企业级”AI提示词库,将模糊需求转化为结构化“API请求”,实现标准化输入输出,让AI成为你的专属旅行架构师,30分钟生成专业定制方案,提升决策质量,降低90%时间成本。
683 129
|
4月前
|
JSON API 数据格式
小红书API接口文档:笔记详情数据开发手册
小红书笔记详情API可获取指定笔记的标题、正文、互动数据及多媒体资源,支持字段筛选与评论加载。通过note_id和access_token发起GET/POST请求,配合签名验证,广泛用于内容分析与营销优化。
|
6月前
|
前端开发 Java API
利用 Spring WebFlux 技术打造高效非阻塞 API 的完整开发方案与实践技巧
本文介绍了如何使用Spring WebFlux构建高效、可扩展的非阻塞API,涵盖响应式编程核心概念、技术方案设计及具体实现示例,适用于高并发场景下的API开发。
524 0
|
5月前
|
人工智能 Java 机器人
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
Spring AI Alibaba集成Ollama,基于Java构建本地大模型应用,支持流式对话、knife4j接口可视化,实现高隐私、免API密钥的离线AI服务。
4602 2
基于Spring AI Alibaba + Spring Boot + Ollama搭建本地AI对话机器人API
|
10月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
6月前
|
缓存 Java API
Spring WebFlux 2025 实操指南详解高性能非阻塞 API 开发全流程核心技巧
本指南基于Spring WebFlux 2025最新技术栈,详解如何构建高性能非阻塞API。涵盖环境搭建、响应式数据访问、注解与函数式两种API开发模式、响应式客户端使用、测试方法及性能优化技巧,助你掌握Spring WebFlux全流程开发核心实践。
1249 0
|
10月前
|
存储 人工智能 Java
Spring AI与DeepSeek实战四:系统API调用
在AI应用开发中,工具调用是增强大模型能力的核心技术,通过让模型与外部API或工具交互,可实现实时信息检索(如天气查询、新闻获取)、系统操作(如创建任务、发送邮件)等功能;本文结合Spring AI与大模型,演示如何通过Tool Calling实现系统API调用,同时处理多轮对话中的会话记忆。
2102 57
|
8月前
|
Java API 网络架构
基于 Spring Boot 框架开发 REST API 接口实践指南
本文详解基于Spring Boot 3.x构建REST API的完整开发流程,涵盖环境搭建、领域建模、响应式编程、安全控制、容器化部署及性能优化等关键环节,助力开发者打造高效稳定的后端服务。
1155 1
|
11月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
|
API 开发者
通义灵码 API 开发文档自动生成场景DEMO
通义灵码API开发文档自动生成场景DEMO展示了通过自定义指令,大模型能快速根据类代码生成Markdown格式的API文档。文档详细描述API的入参、出参,并可生成测试代码等示例,帮助开发者快速创建美观的API文档。
710 1

热门文章

最新文章