springboot 2 整合swagger2 以及遇到的一些坑
注意:不同版本可能會遇到的坑不一樣,所以請儘量保持版本一致。
依賴
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId >io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.8.0</version>
</dependency>
springboot 配置
package com.ysk.mybatiscrack.config;
import org.springframework.context.annotation.Bean;
import org.springframework .context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact ;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* 描述
*
* @author Y.S.K
* @date 2018/6/9 11:46
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
// 自行修改為自己的包路徑
.apis(RequestHandlerSelectors.basePackage("com.ysk.mybatiscrack"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger-api文件")
.description("swagger接入教程")
//服務條款網址
.termsOfServiceUrl("https://blog.csdn.net/ysk_xh_521")
.version("1.0")
.contact(new Contact("Y.S.K", "http://ysk521.cn", "[email protected]"))
.build();
}
}
其實到這個時候已經整合好了,剩下就是註解的使用了。
先來一個可以用的
/**
* @Api:用在請求的類上,表示對類的說明
tags="說明該類的作用,可以在UI介面上看到的註解"
value="該引數沒什麼意義,在UI介面上也看到,所以不需要配置"
* @author Y.S.K
*
*/
@Api(value="/test1", tags="測試介面模組")
@RestController
@RequestMapping("/test")
public class TestSwaggerController {
/**
* @ApiOperation:用在請求的方法上,說明方法的用途、作用
value="說明方法的用途、作用"
notes="方法的備註說明"
@ApiImplicitParams:用在請求的方法上,表示一組引數說明
@ApiImplicitParam:用在@ApiImplicitParams註解中,指定一個請求引數的各個方面
name:引數名
value:引數的漢字說明、解釋
required:引數是否必須傳
paramType:引數放在哪個地方
· header --> 請求引數的獲取:@RequestHeader
· query --> 請求引數的獲取:@RequestParam
· path(用於restful介面)--> 請求引數的獲取:@PathVariable
· body(不常用)
· form(不常用)
dataType:引數型別,預設String,其它值dataType="Integer"
defaultValue:引數的預設值
@ApiResponses:用在請求的方法上,表示一組響應
@ApiResponse:用在@ApiResponses中,一般用於表達一個錯誤的響應資訊
code:數字,例如400
message:資訊,例如"請求引數沒填好"
response:丟擲異常的類
@ApiModel:用於響應類上,表示一個返回響應資料的資訊
(這種一般用在post建立的時候,使用@RequestBody這樣的場景,
請求引數無法使用@ApiImplicitParam註解進行描述的時候)
@ApiModelProperty:用在屬性上,描述響應類的屬性
* @return
*/
@ApiOperation(value="展示首頁資訊value", notes = "展示首頁資訊notes")
@GetMapping("/show")
public Object showInfo(){
return "hello world";
}
@ApiOperation(value="新增使用者資訊", notes = "新增使用者資訊")
@ApiImplicitParam(name="user", value="User", required = true, dataType = "User")
@PostMapping("/addUser")
public Object addUser(@RequestBody User user){
return "success";
}
}
遇到的一些坑
@RequestMapping(“/test”)
Api(value="/test", tags="測試介面模組")
@RestController
public class CrackController {
@GetMapping("/test")
public JSON crack(){
return JsonBuilder.builder().put("validTo",Long.parseLong("111111111111111")).put("valid",true).build();
}
@GetMapping("/")
public JSON index(){
return JsonBuilder.builder().put("aaa",Long.parseLong("111111111111111")).put("valid",true).build();
}
@ApiOperation(value="獲取使用者列表value", notes="獲取使用者列表notes")
@GetMapping("/{id}")
public Object cracqk(){
return "1342";
}
}
上面是我剛開始寫的是沒有上面那個紅色的部分的,然後就會出現下面這個問題,啥都不顯示。
原因分析
其實主要還是自己把自己坑了,下面我的那個controller 方法寫的有問題。
@ApiOperation(value="獲取使用者列表value", notes="獲取使用者列表notes")
@GetMapping("/{id}")
public Object cracqk(){
return "1342";
}
就是這個,他會預設把http://localhost:9998/swagger-ui.html ,後面紅色部分當做引數傳進來,導致的-,-,好了,現在問題解決了。
下一個問題
如果出現 No mapping found for HTTP request with URI [/swagger-ui.html]
解決辦法如下
@Configuration
@EnableWebMvc
public class WebMvcConfigurerConfig implements WebMvcConfigurer {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.setAllowCredentials(true);
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
swagger註解
swagger通過註解表明該介面會生成文件,包括介面名、請求方法、引數、返回資訊的等等。
@Api:修飾整個類,描述Controller的作用
@ApiOperation:描述一個類的一個方法,或者說一個介面
@ApiParam:單個引數描述
@ApiModel:用物件來接收引數
@ApiProperty:用物件接收引數時,描述物件的一個欄位
@ApiResponse:HTTP響應其中1個描述
@ApiResponses:HTTP響應整體描述
@ApiIgnore:使用該註解忽略這個API
@ApiError :發生錯誤返回的資訊
@ApiImplicitParam:一個請求引數
@ApiImplicitParams:多個請求引數
相關推薦
springboot 2 整合swagger2 以及遇到的一些坑
注意:不同版本可能會遇到的坑不一樣,所以請儘量保持版本一致。 依賴 <dependency> <groupId>io.springfox</groupId>
Spring Cloud 整合 Swagger2 以及遇到的坑
一、引入依賴: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <ve
springBoot(12)---整合Swagger2
Spingboot整合Swagger2 隨著網際網路技術的發展,一般開發都是前後端分離,那麼前端和後端的唯一聯絡,變成了API介面;API文件變成了前後端開發人員聯絡的紐帶,變得越來越重要,沒有API 文件工具之前,大家都是手寫API文件的,在什麼地方書寫的都有,有在confluence上
系統應用整合過程中的一些坑
這次想來講講系統應用整合過程中遇到的一些坑,尤其是 so 檔案相關的坑。 背景 埋這些坑的最初來源是由於測試人員在整合新終端裝置時提了個 bug: app 在這個裝置上無法啟動。 隨後拋來了一份日誌,過濾了下,最重要的其實就一條,crash 日誌: java.lang.UnsatisfiedLinkError
SpringBoot簡單整合Swagger2
Swagger是什麼 Swagger 是一系列 RESTful API 的工具,通過 Swagger 可以獲得專案的一種互動式文件,客戶端 SDK 的自動生成等功能。 使用 Spring Boot 整合 Swagger 的理念是,使用註解來標記出需要在 AP
spring mvc 4.2 整合 swagger2
Swagger是一個規範和完整的框架,用於生成、描述、呼叫和視覺化 RESTful 風格的 Web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法,引數和模型緊密整合到伺服器端的程式碼,允許API來始終保持同步。 1.引入swagger2的mav
springboot專案整合Swagger2
不僅僅是springboot,其他spring專案均可整合swagger,在專案開發中,眾多的介面都要有介面文件,並且很容易出現紕漏和程式碼與文件不一致的情況,利用swagger來自動生成api文件,讓程式碼維護與文件維護保持一致,大大減少文件編寫和維護
springboot2.0整合工作流activiti6.0,以及與業務整合時的一些坑
1、首先,要在springboot工程的pom檔案中引入相關jar包 <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-
SpringBoot 2.0.5簡單整合Spring Security遇到的坑
SpringBoot整合Security的部落格案例網上已經很多了,但個人覺得對於一個初次整合Security的同學來說,一個簡單的案例還是很有必要的。為此,上傳一個本人整合的案例,僅供大家參考,也為自己記錄一下,話不多說,表演開始。 版本介紹:SpringBoot 2.0
二、SpringBoot 整合 swagger2 (swagger2 版本 2.8.0)
(一)新增依賴 <swagger.version>2.8.0</swagger.version> <!-- swagger2 restful api 文件 start --> <dependency> <gro
springboot 2.X 整合redis 以及快取@Cacheable
【前言】針對系統中的查詢比較頻繁的熱點資料做快取,注意不是類似資料庫的二級快取哦,spring的Cacheable這個註解可以對方
同時集成百度地圖、定位以及導航遇到的一些坑
so文件 成了 自己 sel ear 模擬 images 謝謝 function 項目用到的地圖功能有點多,同時集成了地圖、定位以及導航這幾個功能。 每個單獨使用,都很順利,但合在一起用會有問題。 我每次集成百度地圖,都會在http://lbsyun.baidu.com/s
SpringBoot 2.SpringBoot整合Mybatis
string map res iba tis com roo batis 哈哈哈 一、創建Springboot的配置文件:application.properties SpringApplication 會從 application.properties 文件中加載配置信
SpringBoot整合Swagger2簡單的例子
設定 tro -c fault rip comment sed itl java Swagger 是一個規範和完整的框架,用於生成、描述、調用和可視化 RESTful 風格的 Web 服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密
5分鐘 springboot 整合swagger2
sed des resources text def mutable rod contact println springboot 整合swagger2 1.maven配置文件中添加依賴 <properties> <swagger2.version
03、Swagger2和Springmvc整合詳細記錄(爬坑記錄)
component 效果 ges context tex ron 問題 package amp 時間 內容 備註 2018年6月18日 基本使用 spirngmvc整合swagger2 開始之前這個系列博文基本是,在項目的使用中一些模塊的內容記錄,但是
SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle簡單整合
png etc type .com () 簡單 import true not 記錄一下SpringBoot(2.0.4.RELEASE)+Elasticsearch(6.2.4)+Gradle整合的一個小例子。 1.在Gradle內加入相關jar包的依賴: com
zookeeper集群查看狀態時報錯Error contacting service. It is probably not running的一些坑以及解決辦法
暫時 關機重啟 ron emc img 坑爹 .com 輸出日誌 off 最近在搭建mq集群時候需要用到,zookeeper,可是啟動的時候顯示成功了,查看狀態的時候卻報錯了: 碰到這個問題也是研究好好半天才解決,這裏就總結出一個快速解決辦法! 首先,必須看日誌: 報錯
小程序canvas使用,及一些坑,以及自己的一些小總結
開發 背景圖 height java gda 數據 利用 let 宋體 自己做了一個小程序,主要用於給頭像加圖標的那種,和qq似的,主要用canvas做的, 第一回用,掉了很多坑,所以今天系統的總結一下自己所做的,如果大家有不理解的地方,歡迎提問 canvas可以用來畫一
(六)SpringBoot整合Swagger2框架
url selector use contact text exceptio pid urn 自動生成 一:什麽是Swagger Swagger是一款通過我們添加的註解來對方法進行說明,來自動生成項目的在線api接口文檔的web服務。 二:添加Swagger2依賴 <