我是如何快速搭建swagger,并自定义修改逻辑代码
2017-04-25 10:59
369 查看
Swagger分为2个版本:Swagger1和Swagger2。
Swagger2需要spring4。我们接下来的项目采用是Swagger1,因为好多公司项目并不是升级到spring4的
网上一搜文档几乎全是一样的,连标点符号都一样,错误的地方都一样,我不信所有人都亲自实验过,反正我实验了都各种报错。
Swagger1的ui的版本特别多,和后端接口也不匹配,我找了很多,然后找到一个版本差不多合适的,再自己修改源码。
1、加入pom
2、swaggerconfig。配置一些自己的信息而已,会在api首页显示
根本不需要像网上说的spring.xml配置那么多内容,什么都不配置即可。放到controller类一起
3、复制html
https://pan.baidu.com/s/1jI9NKX4
将百度云中api.zip解压到webapp目录下。
此时后端接口已经结束,复制html是为了更好显示,如果你直接看json也没关系。后端的接口名是/api-docs
(1)修改总的接口列表访问地址
打开项目的api/index.html。找到
如果无项目名的,那就删掉。
意思是 ajax的http://127.0.0.1/api-docs可以访问
(2)修改在线测试的请求路径
搜索api/lib/swagger.js里的“SwaggerOperation.prototype.urlify”,将this.resource.basePath的值配置成你的访问根目录,这里是在线测试点击try it out 时候访问的。f12监控下看看
4、修改后端路径
引入swagger的jar包含一个路径的controller。这里会生成一个根目录下的访问接口 /api-docs
如果你的项目都是*.action的,*.do的,那么访问就是/api-docs.action,/api-docs.do。
但是swagger
ui访问的接口都是无后缀的,总不能把所有的js都修改了。所以如果你的项目有,比如*.do,那么修改成无后缀的。如果改成无后缀就得处理静态文件的问题。
web.xml里边设置
5、随便找一个controller了,添加注释的参数
具体我就不说了,这块基本没问题
5、打开浏览器
访问即可http://127.0.0.1:8910/{项目名}/api/index.html
我的是
http://127.0.0.1:8910/mdhy/api/index.html
看到红圈地方,这里是数组的,我做了改进,支持数组的对象显示
Swagger2需要spring4。我们接下来的项目采用是Swagger1,因为好多公司项目并不是升级到spring4的
网上一搜文档几乎全是一样的,连标点符号都一样,错误的地方都一样,我不信所有人都亲自实验过,反正我实验了都各种报错。
Swagger1的ui的版本特别多,和后端接口也不匹配,我找了很多,然后找到一个版本差不多合适的,再自己修改源码。
1、加入pom
<dependency> <groupId>com.mangofactory</groupId> <artifactId>swagger-springmvc</artifactId> <version>1.0.2</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>2.4.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.4.4</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.4.4</version> </dependency>
2、swaggerconfig。配置一些自己的信息而已,会在api首页显示
根本不需要像网上说的spring.xml配置那么多内容,什么都不配置即可。放到controller类一起
package com.fastcloud.web.front; import com.mangofactory.swagger.configuration.SpringSwaggerConfig; import com.mangofactory.swagger.models.dto.ApiInfo; import com.mangofactory.swagger.plugin.EnableSwagger; import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.EnableWebMvc; @Configuration @EnableWebMvc @EnableSwagger public class SwaggerConfig { private SpringSwaggerConfig springSwaggerConfig; /** * Required to autowire SwaggerConfig */ @Autowired public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) { this.springSwaggerConfig = springSwaggerConfig; } /** * Every SwaggerSpringMvcPlugin bean is picked up by the swagger-mvc * framework - allowing for multiple swagger groups i.e. same code base * multiple swagger resource listings. */ @Bean public SwaggerSpringMvcPlugin customImplementation() { return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*?"); } private ApiInfo apiInfo() { ApiInfo apiInfo = new ApiInfo( "TP", "TP的H5接口", "http://127.0.0.1:8080", "My Apps API Contact Email", "My Apps API Licence Type", "My Apps API License URL"); return apiInfo; } }
3、复制html
https://pan.baidu.com/s/1jI9NKX4
将百度云中api.zip解压到webapp目录下。
此时后端接口已经结束,复制html是为了更好显示,如果你直接看json也没关系。后端的接口名是/api-docs
(1)修改总的接口列表访问地址
打开项目的api/index.html。找到
url: "/mdhy/api-docs"将mdhy修改成自己的项目访问名, http://127.0.0.1/{项目名}/api-docs
如果无项目名的,那就删掉。
意思是 ajax的http://127.0.0.1/api-docs可以访问
(2)修改在线测试的请求路径
搜索api/lib/swagger.js里的“SwaggerOperation.prototype.urlify”,将this.resource.basePath的值配置成你的访问根目录,这里是在线测试点击try it out 时候访问的。f12监控下看看
4、修改后端路径
引入swagger的jar包含一个路径的controller。这里会生成一个根目录下的访问接口 /api-docs
如果你的项目都是*.action的,*.do的,那么访问就是/api-docs.action,/api-docs.do。
但是swagger
ui访问的接口都是无后缀的,总不能把所有的js都修改了。所以如果你的项目有,比如*.do,那么修改成无后缀的。如果改成无后缀就得处理静态文件的问题。
web.xml里边设置
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.css</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.gif</url-pattern> </servlet-mapping> <!-- spring mvc --> <servlet> <servlet-name>mdhy</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>3</load-on-startup> </servlet> <servlet-mapping> <servlet-name>mdhy</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
5、随便找一个controller了,添加注释的参数
具体我就不说了,这块基本没问题
5、打开浏览器
访问即可http://127.0.0.1:8910/{项目名}/api/index.html
我的是
http://127.0.0.1:8910/mdhy/api/index.html
看到红圈地方,这里是数组的,我做了改进,支持数组的对象显示
相关文章推荐
- 我是如何快速搭建swagger,并自定义修改逻辑代码
- 64 位操作系统下, Revit 如何修改代码后再次快速调试新代码
- Xcode 如何快速输入自定义代码
- wince下,修改private下的代码,如何进行快速编译,比如之编译自己修改部分的代码
- 光脚丫学LINQ(024):如何通过修改DBML文件生成自定义代码
- 如何自定义maven中的archetype,并使用快速生成代码基础框架
- 如何使用SmartGit快速上传下载新建分支修改代码
- 逻辑复杂的业务代码如何实现有顺序的跳转展示(登录成功后要去摇奖,设置预留信息,修改密码,弹窗警告......等等)
- 光脚丫学LINQ(024):如何通过修改DBML文件生成自定义代码
- wince下,修改private下的代码,如何进行快速编译,比如之编译自己修改部分的代码
- 如何通过代码修改web.config文件?
- 当DataGridView控件通过代码在运行时设置了数据源,如何在运行时修改DataGridView控件的列
- 如何快速理解其他人写的Java代码
- 如何修改新建帐套中自定义对象的序列
- Axure RP Pro - 相关问题 - 修改自定义样式对已应用该样式部件的逻辑
- 如何从Project数据库中读取mpp文件中自定义域以及自定义大纲代码
- LINQ : 如何为LINQ TO SQL实现自定义业务逻辑
- [VB.NET]如何在DataGridView控件中增加、删除和修改记录(用程序代码的方法)
- 如何通过代码修改web.config文件?
- 如何使用ASP.NET代码查看、修改AD用户信息