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

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。
各位小伙伴们,今天是博主2016年发的第一篇文章,首先祝大家新年快乐,工资Double,哈哈。今天我们来看一个比较重要的Feature--使用Web API执行FetchXML查询!对的,各位,你们没有听错,使用Web API执行FetchXML查询。在过去我们做这样的事情可是要花九牛二虎之力哟,拼接大量的SOAP消息体而且还容易出错。现在好了,我们自己可以在URL里面加上我们想要执行的FetchXML即可,系统则会乖乖的把我们想要的数据返回回来,是不是很美好呢! 言归正传,Web API的数据查询方式还
作者:朱金灿 来源: http://blog.csdn.net/clever101          一般来说桌面软件以单机单进程的方式运行,在调试程序时可以方便地进行单步调试。而并行处理系统往往以多机多进程的方式运行,一旦出错对于如何定位错误所在成了一件棘手的事情。这时日志调试成为定位错误的有效手段。下面谈谈如何设计日志可以方便地定位错误。           首先是日志文件的命名,最初的命名是采用软件名字 .log 。发现这样做最新的日志总是把老日志覆盖了,显然这样是不行的。要想新的日志不覆盖旧的日志
刚设计的自动部署产品监控框架【图】

Windows安装运行Kafka - 2016-02-19 14:02:52

简介 本文讲述了如何在Windows OS上配置并启动Apache Kafka,这篇指南将会指导你安装Java和Apache Zookeeper。  Apache Kafka是一个快速可扩展的消息队列,能够应对繁重的读写负载,即IO相关工作。更多信息请参见 http://kafka.apache.org 。由于Zookeeper能提供可靠的分布式协调服务,Apache Kafka需要运行一个Zookeeper实例。更多Zookeeper的相关信息请查看 https://zookeeper.apache.o
概述   性能是网站的一个重要指标,除非是没得选择(比如12306),否则用户无法忍受一个响应缓慢的网站。一个打开缓慢的网站会导致严重的用户流失,很多时候网站性能问题是网站架构升级优化的触发器。可以说性能是网站架构设计的一个重要方面,任何软件架构设计方案都必须考虑可能会带来的性能问题。   也正是因为性能问题几乎无处不在,所以优化网站性能的手段也非常多,从用户浏览器到数据库,影响用户请求的所有环节都可以进行性能优化。   在浏览器端,可以通过浏览器缓存、使用页面压缩、合理分布页面、减少Cookie传输等改
前言 之前一段时间写了篇文章 DataNode数据处理中心DataXceiver 从大的方向了解了下datanode读写操作的过程.但是并没有具体细粒度的去关注读写操作中的细节以及可能存在的问题,本篇文章算是对这方面的一个补充吧.尽管本文所涉及的范围面看起来很窄,但是所呈现出来的结果一定会让你有所收获的. DFSOutputStream写数据以及周边相关类,变量 本文主要阐述的datanode写数据的过程,而写数据过程中,第一个联系到的就是DFSOutputStream对象类.但其实这只是其中的一个大类,
一、开篇一点概念 最近想深入研究下solr,顺便记录一些知识点,以供后来者。 1.Solr是什么东西 Solr是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。 Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。 它易于安装和配置,而且附带了一个基于HTTP 的管理界面。 2.Solr的特性包括 高级的全文搜索功能 专为高通量的网络流量进行的优化 基于开放接口(XML和HTTP)的标准 综合的HTM

信息指纹 - 2016-02-19 14:02:17

信息指纹的由来   信息有“指纹”吗?信息要“指纹”做什么呢?   ”指纹”一般特指我们识别人所采用各种方式的一个总称。生活中我们需要辨认出周围的每一个人,即使是非常相似的双胞胎,因为辨别是我们进行相互交流的前提。无论是通过名字、长相、声音的辨认,还是通过有技术依据的指纹与虹膜辨认,甚至是通过DNA鉴定,目的都只有一个,就是能准确确认对方。   可见指纹的首要用途就是识别个体,当然作为指纹特征,需要它是可唯一确定的、不容易更改的、方便携带的。另外一个重要用途是检索,我们需要找哪个朋友的时候,可呼叫他的名字

Kafka入门经典教程 - 2016-02-19 14:02:16

1.Kafka独特设计在什么地方? 2.Kafka如何搭建及创建topic、发送消息、消费消息? 3.如何书写Kafka程序? 4.数据传输的事务定义有哪三种? 5.Kafka判断一个节点是否活着有哪两个条件? 6.producer是否直接将数据发送到broker的leader(主节点)? 7.Kafa consumer是否可以消费指定分区消息? 8.Kafka消息是采用Pull模式,还是Push模式? 9.Procuder API有哪两种? 10.Kafka存储在硬盘上的消息格式是什么? 一、基本概念

ZooKeeper配置 - 2016-02-18 14:02:15

最近针对ZK一些比较疑惑的问题,再看了一下相关代码,列举如下。这里只列官方文档中没有的,或者不清晰的。以zookeeper-3.3.3为基准。以下用ZK表示ZooKeeper。 一个ZooKeeper对象,代表一个ZK Client。应用通过ZooKeeper对象中的读写API与ZK集群进行交互。一个简单的创建一条数据的例子,只需如下两行代码: ZooKeeper zk = new ZooKeeper(serverList, sessionTimeout, watcher);zk.create("/tes