精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

比試一下:Swagger3就是比2簡單粗暴

開發 前端
接口文檔總是很煩人,我曾經嘗試過用Postman來編寫和分享項目文檔,感覺還不錯。但是最近項目緊,我沒有額外的時間可以花在它上面,這也導致我嘗試YApi(另外一種文檔)的計劃泡湯了。

[[392715]]

接口文檔總是很煩人,我曾經嘗試過用Postman來編寫和分享項目文檔,感覺還不錯。但是最近項目緊,我沒有額外的時間可以花在它上面,這也導致我嘗試YApi(另外一種文檔)的計劃泡湯了。嗯,目前沒有比Swagger更快、更傻瓜的工具,雖然它有嚴重的代碼污染。先拿這個對付一陣時間,等閑暇時間再玩YApi。

Swagger3集成

Swagger目前最新版本是3.0.0,在Spring Boot應用中集成Swagger3比老的Swagger2簡單多了,它提供了一個Starter組件。

  1. <dependency> 
  2.     <groupId>io.springfox</groupId> 
  3.     <artifactId>springfox-boot-starter</artifactId> 
  4.     <version>3.0.0</version> 
  5. </dependency> 

 

就這就可以了,簡單不?

至于有的教程說還要開啟注解@EnableOpenApi,完全不需要。因為在springfox-boot-starter-3.0.0.jar下你可以找到一個spring.factories,熟悉Spring Boot的同學都知道這個是一個Spring Boot 特有的SPI文件,能夠自動的發現并注冊Starter組件的配置。里面有這樣的配置:

  1. # Auto Configure 
  2. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ 
  3. springfox.boot.starter.autoconfigure.OpenApiAutoConfiguration 

順藤摸瓜,找到總的配置類OpenApiAutoConfiguration:

  1. @Configuration 
  2. @EnableConfigurationProperties(SpringfoxConfigurationProperties.class) 
  3. @ConditionalOnProperty(value = "springfox.documentation.enabled", havingValue = "true", matchIfMissing = true
  4. @Import({ 
  5.     OpenApiDocumentationConfiguration.class, 
  6.     SpringDataRestConfiguration.class, 
  7.     BeanValidatorPluginsConfiguration.class, 
  8.     Swagger2DocumentationConfiguration.class, 
  9.     SwaggerUiWebFluxConfiguration.class, 
  10.     SwaggerUiWebMvcConfiguration.class 
  11. }) 
  12. @AutoConfigureAfter({ WebMvcAutoConfiguration.class, JacksonAutoConfiguration.class, 
  13.     HttpMessageConvertersAutoConfiguration.class, RepositoryRestMvcAutoConfiguration.class }) 
  14. public class OpenApiAutoConfiguration { 
  15.  

一些發現

我們找到了關鍵的一個地方@ConditionalOnProperty注解聲明了當springfox.documentation.enabled為true時啟用配置,而且默認值就是true。這非常有用,Swagger僅僅建議在開發階段使用,這個正好是個開關。另外有時候我們自定義配置的時候最好把這個開關也加上:

  1. // 自定義swagger3文檔信息 
  2. @Configuration 
  3. @ConditionalOnProperty(value = "springfox.documentation.enabled", havingValue = "true", matchIfMissing = true
  4. public class Swagger3Config { 
  5.     @Bean 
  6.     public Docket createRestApi() { 
  7.         return new Docket(DocumentationType.OAS_30) 
  8.                 .apiInfo(apiInfo()) 
  9.                 .select() 
  10.                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) 
  11.                 .paths(PathSelectors.any()) 
  12.                 .build(); 
  13.     } 
  14.  
  15.     private ApiInfo apiInfo() { 
  16.         return new ApiInfoBuilder() 
  17.                 .title("Swagger3接口文檔"
  18.                 .description("更多請咨詢felord.cn"
  19.                 .contact(new Contact("碼農小胖哥""https://felord.cn""dax@felord.cn")) 
  20.                 .version("1.0.0"
  21.                 .build(); 
  22.     } 

如果你想在Swagger3中加入Json Web Token,可以參考這篇文章。

最開始我們提到Swagger3不需要使用@EnableOpenApi或者@EnableSwagger2開啟,這里也能找到答案。

  1. @Import(OpenApiDocumentationConfiguration.class) 
  2. public @interface EnableOpenApi { 
  3. @Import(Swagger2DocumentationConfiguration.class) 
  4. public @interface EnableSwagger2 { 

上面的兩個導入類都可以在OpenApiAutoConfiguration找到,所以Swagger3提供的是全自動的集成。

和全局統一參數不兼容

如果你使用了統一返回體封裝器來標準化Spring MVC接口的統一返回

  1. /** 
  2.  * 返回體統一封裝器 
  3.  * 
  4.  * @author n1 
  5.  */ 
  6. @RestControllerAdvice  
  7. public class RestBodyAdvice implements ResponseBodyAdvice<Object> { 
  8.     @Override 
  9.     public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) { 
  10.         return !returnType.hasMethodAnnotation(IgnoreRestBody.class); 
  11.     } 
  12.  
  13.     @Override 
  14.     public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { 
  15.  
  16.         if (body == null) { 
  17.             return RestBody.ok(); 
  18.         } 
  19.         if (Rest.class.isAssignableFrom(body.getClass())) { 
  20.             return body; 
  21.         } 
  22.         return RestBody.okData(body); 
  23.     } 

你會發現Swagger3會報Unable to infer base url……的錯誤,這是因為統一返回體影響到了Swagger3的一些內置接口。解決方法是@RestControllerAdvice控制好生效的包范圍,也就是配置其basePackages參數就行了,這個潛在的沖突浪費我了一個多小時。

安全框架放行

如果你使用安全框架,Swagger3的內置接口就會訪問受限,我們需要排除掉。Spring Security是這么配置的:

  1. @Override 
  2. public void configure(WebSecurity web) throws Exception { 
  3.     //忽略swagger3所需要用到的靜態資源,允許訪問 
  4.     web.ignoring().antMatchers( "/swagger-ui.html"
  5.             "/swagger-ui/**"
  6.             "/swagger-resources/**"
  7.             "/v2/api-docs"
  8.             "/v3/api-docs"
  9.             "/webjars/**"); 

如果你使用的版本是Spring Security 5.4,你可以這么定制WebSecurity:

  1. @Bean 
  2. WebSecurityCustomizer swaggerWebSecurityCustomizer() { 
  3.     return (web) -> { 
  4.         web.ignoring().antMatchers(new String[]{"/swagger-ui.html""/swagger-ui/**""/swagger-resources/**""/v2/api-docs""/v3/api-docs""/webjars/**"}); 
  5.     }; 

更加方便簡單圖片,這樣Swagger就能正常的渲染和訪問了。

總結

 

 

 

今天分享了一些swagger3的配置心得,希望能夠幫助你上手最新的swagger3文檔工具。

本文轉載自微信公眾號「碼農小胖哥」,可以通過以下二維碼關注。轉載本文請聯系碼農小胖哥公眾號。

 

責任編輯:武曉燕 來源: 碼農小胖哥
相關推薦

2022-07-21 11:04:53

Swagger3Spring

2024-11-05 09:25:45

2010-12-06 09:10:02

LightSwitch

2023-02-08 09:02:05

VS Code摸魚神器

2022-06-29 10:04:01

PiniaVuex

2020-10-15 11:18:13

Linux內核虛擬機

2022-03-02 10:53:22

Postman工具開發

2022-12-03 18:24:13

數據能力場景

2022-08-08 10:09:08

Vitest單元測試

2009-11-17 11:14:25

Oracle擴展

2021-05-07 20:27:14

SpringBootSwagger3文檔

2013-11-20 13:41:32

IE微軟解決方法

2021-01-21 07:31:11

Filter框架權限

2018-02-08 10:52:13

Kotlin語言代碼

2010-06-13 17:57:23

局域網協議

2020-07-02 09:46:05

AI

2011-07-20 16:13:03

SQL Profile數據庫

2009-06-15 11:22:06

2024-01-31 08:23:54

2015-11-12 10:32:27

前端后端分離
點贊
收藏

51CTO技術棧公眾號

国内精品偷拍视频| 50一60岁老妇女毛片| 最新真实国产在线视频| 看片网站欧美日韩| 欧美巨大黑人极品精男| zjzjzjzjzj亚洲女人| 中文字幕在线免费观看视频| 国产精品私人自拍| 91传媒视频免费| 日韩视频在线观看一区| 99tv成人| 精品视频在线播放免| 国产一级片自拍| a√中文在线观看| 中文子幕无线码一区tr| 成人av网站观看| 国模私拍一区二区| 激情自拍一区| 色青青草原桃花久久综合| 又色又爽又黄18网站| 澳门av一区二区三区| 亚洲尤物视频在线| 婷婷久久伊人| 四虎永久在线精品免费网址| 男人操女人的视频在线观看欧美| 久久久久国产精品免费网站| 国产精品情侣呻吟对白视频| 国产精品18hdxxxⅹ在线| 欧美日韩一区成人| 日本精品免费在线观看| 色帝国亚洲欧美在线| 久久久精品蜜桃| 国产精品三区www17con| 影音先锋国产在线| 美女网站久久| 久久久久久久爱| 99热精品免费| 91亚洲国产高清| 亚洲男人天堂视频| 中国一级特黄录像播放| 亚洲一二三区视频| 欧美一区二区三区在线电影| 欧美日韩亚洲自拍| 国产精品专区免费| 欧美日韩人人澡狠狠躁视频| 日韩中文字幕亚洲精品欧美| 激情视频在线观看| 欧美韩国日本综合| 视频一区二区三区免费观看| 偷拍自拍在线| 国产91露脸合集magnet| 亚洲综合自拍一区| 精品人妻aV中文字幕乱码色欲| 麻豆91精品91久久久的内涵| 国产成人精品一区二区三区| 欧美h在线观看| 亚洲欧美不卡| 欧美最猛黑人xxxx黑人猛叫黄| 国产精彩视频在线观看| 亚洲高清免费| 亚州av一区二区| 国产又色又爽又黄的| 国产一区二区精品| 国产成人短视频| 国产精品成人久久久| 男男成人高潮片免费网站| 国产mv免费观看入口亚洲| 天天干天天色综合| 日本sm残虐另类| 国产精品亚洲综合天堂夜夜| 国产女优在线播放| 麻豆精品一区二区| 亚洲影院色在线观看免费| 国产精品-色哟哟| 国产高清久久久| 国产精品一区二区三区精品| 天堂网www中文在线| 久久久久久久免费视频了| 日韩久久久久久久| 天堂а√在线资源在线| 亚洲欧美日韩小说| av女优在线播放| 在线黄色的网站| 欧美天天综合网| 免费网站在线观看黄| 在线精品自拍| 亚洲精品少妇网址| jizzjizzjizz国产| 午夜日韩视频| 51久久精品夜色国产麻豆| 中国女人一级一次看片| 国产精品中文欧美| 久久国产精品久久| 91在线看黄| 亚洲夂夂婷婷色拍ww47| 久久久精品在线视频| 亚洲欧美一级| 亚洲激情电影中文字幕| 五月婷婷婷婷婷| 激情文学一区| 91精品久久久久久久久久| 亚洲奶汁xxxx哺乳期| 国产情人综合久久777777| 中国黄色录像片| 韩国成人漫画| 日韩欧美国产精品一区| 91网站免费视频| 女人香蕉久久**毛片精品| 欧美又大又硬又粗bbbbb| 国产一区二区波多野结衣| 99视频精品免费视频| 一区二区三区国产福利| 亚洲天堂av在线| 69堂国产成人免费视频| 一级国产黄色片| 亚洲精品极品少妇16p| 欧美在线免费看| a网站在线观看| 国产日韩欧美一区二区三区综合 | 欧美亚洲国产日韩| 日韩中文字幕视频在线| 五月天激情四射| 成人精品gif动图一区| 亚洲一二三区精品| 美女100%一区| 日韩国产精品视频| 中文字幕在线有码| 麻豆成人久久精品二区三区小说| 久久精品magnetxturnbtih| 中文在线字幕免费观看| 欧美日韩卡一卡二| 女人又爽又黄免费女仆| 国产精品久久777777毛茸茸 | 欧美成人免费全部| 亚洲视频在线免费播放| 久久精品一区四区| 国产美女三级视频| 香蕉久久夜色精品国产更新时间| 欧美日韩高清区| av小说天堂网| 中文字幕一区二区三区色视频| 一本色道无码道dvd在线观看| 久久男人av| 欧美激情在线观看| 国产刺激高潮av| 亚洲综合偷拍欧美一区色| 特级黄色片视频| 91av精品| 亚洲bt欧美bt日本bt| 超碰人人在线| 日韩一卡二卡三卡四卡| 国产性生活大片| 麻豆精品在线播放| 一区在线电影| 成人自拍视频| 九九精品视频在线| 国产福利第一视频| 亚洲一区在线观看网站| 日本中文字幕有码| 亚洲图片在线| 国产欧美亚洲日本| 性感女国产在线| 亚洲免费视频在线观看| 欧美日韩a v| 国产精品午夜免费| 99日在线视频| 国产精品videossex久久发布| 粉嫩精品一区二区三区在线观看| 牛牛电影国产一区二区| 日韩av影片在线观看| 久草视频一区二区| 欧美国产一区在线| 午夜大片在线观看| 精品999网站| 欧美久久久久久久| 96sao精品免费视频观看| 久久99精品视频一区97| 国 产 黄 色 大 片| 日韩欧美在线视频| 人与动物性xxxx| 国产福利91精品一区二区三区| 日韩精品视频在线观看视频 | 久久精品999| 欧美国产综合在线| 精品国产一区二区三区四区| 国产日韩欧美在线观看| 毛片网站在线看| 亚洲欧美制服综合另类| 一本色道久久综合亚洲| 亚洲综合久久av| 亚洲一级中文字幕| 国产一区二区在线免费观看| 精品人妻少妇一区二区| 不卡av一区二区| 99久久免费国| 精品免费av一区二区三区 | 国产福利片在线观看| 国产一区二区三区久久精品| 国产熟女精品视频| 欧美视频中文字幕在线| 黄色录像二级片| 26uuu色噜噜精品一区二区| 性chinese极品按摩| 亚洲黄页一区| 中文字幕一区二区三区四区五区| 91精品入口| 国产裸体写真av一区二区| 96av在线| 久久五月天色综合| 国产在线视频网| 欧美大片顶级少妇| 亚洲一区在线观| 欧美性猛交xxxx乱大交蜜桃| 放荡的美妇在线播放| 久久久久久97三级| 欧美激情 亚洲| 国产一区在线观看视频| 国产精品无码专区av在线播放| 好看的日韩av电影| 美女在线免费视频| 成人系列视频| 欧美日韩国产高清视频| 高清一区二区三区| 91传媒视频在线观看| 欧美性www| 国产精品欧美久久久| 神马午夜在线视频| 国模私拍一区二区三区| free性欧美hd另类精品| 日韩在线观看高清| 91精品国产综合久久久久久豆腐| 精品香蕉在线观看视频一| 欧美自拍偷拍一区二区| 日韩欧美一级二级三级| 国产男男gay体育生白袜| 欧美丝袜丝交足nylons图片| 日韩中文字幕在线观看视频| 五月天激情综合| 日韩精品视频免费看| 亚洲午夜一区二区三区| 久久精品波多野结衣| 亚洲欧美另类久久久精品| 青青操在线视频观看| 欧美韩日一区二区三区四区| 无码人妻aⅴ一区二区三区69岛| 久久久亚洲国产美女国产盗摄| 波多野结衣有码| 波多野结衣一区二区三区| 久久久精品人妻一区二区三区| 九九热在线视频观看这里只有精品| 天天爱天天操天天干| 久色成人在线| 成年人小视频网站| 天堂av在线一区| 9久久婷婷国产综合精品性色 | 亚洲AV无码一区二区三区性| 日韩三级精品电影久久久| av 一区二区三区| 欧美成人女星排名| 人妻精品一区二区三区| 亚洲а∨天堂久久精品9966| 十八禁一区二区三区| 精品视频—区二区三区免费| 成人在线观看免费| 日韩资源在线观看| 在线中文字幕-区二区三区四区| 精品中文字幕在线| 少妇视频在线观看| 国产成人精品电影久久久| 国产极品一区| 亚洲一区二区三区777| 在这里有精品| 蜜桃91精品入口| 日韩欧美自拍| www.亚洲成人网| 亚洲综合二区| 自拍偷拍一区二区三区四区| 国产一区久久久| 中文字幕 亚洲一区| 国产亚洲欧美日韩日本| 天堂av网手机版| 亚洲国产欧美在线| 无码人妻丰满熟妇区bbbbxxxx| 欧美日韩精品一区二区| 精品国产无码一区二区三区| 日韩精品视频在线播放| 成人不用播放器| 欧美激情中文字幕乱码免费| 免费h在线看| 国产欧美va欧美va香蕉在| 99精品国产一区二区三区2021| 欧美日韩在线精品| 一区二区影院| 丁香啪啪综合成人亚洲| 国产在线观看免费一区| 女同毛片一区二区三区| 一色屋精品亚洲香蕉网站| 久久狠狠高潮亚洲精品| 精品污污网站免费看| 好男人在线视频www| 一区二区三区国产视频| 国产啊啊啊视频在线观看| 青青草原一区二区| 清纯唯美激情亚洲| 四虎一区二区| 国产欧美综合一区二区三区| gogogo高清免费观看在线视频| av中文字幕在线不卡| 亚洲欧洲综合网| 欧美色播在线播放| 精品国产免费无码久久久| 国产一区二区三区18| 国产夫妻在线播放| 999国产视频| 99久久99久久精品国产片桃花| 无码精品a∨在线观看中文| 精品一区二区三区免费观看| 91精品人妻一区二区| 亚洲线精品一区二区三区八戒| 国产又大又长又粗| 亚洲午夜久久久影院| а√天堂中文资源在线bt| 91久久在线观看| 国际精品欧美精品| 精品99在线视频| 成人av网站在线| 欧洲猛交xxxx乱大交3| 欧美三级在线看| 国产在线91| 5278欧美一区二区三区| 99香蕉久久| 免费观看亚洲视频| 国产乱码精品一区二区三区五月婷| 人与嘼交av免费| 色播五月激情综合网| 午夜视频免费看| 97精品一区二区三区| 一区二区三区欧洲区| 国产亚洲精品久久久久久久| 精品一区二区三区在线播放| 无码少妇一区二区| 在线精品观看国产| 国产色在线 com| 日韩美女av在线免费观看| 极品一区美女高清| 久久久亚洲精品无码| 不卡欧美aaaaa| 欧美成人精品欧美一级乱黄| 亚洲国产婷婷香蕉久久久久久| 草美女在线观看| 国产aⅴ精品一区二区三区黄| 欧美一区高清| www.四虎在线| 欧美日韩精品在线观看| 四虎影视2018在线播放alocalhost| 亚洲2020天天堂在线观看| 精品综合久久88少妇激情| 可以看毛片的网址| 99视频精品全部免费在线| 91video| 亚洲欧洲在线免费| 亚洲不卡系列| 尤物国产精品| 粉嫩在线一区二区三区视频| 日韩成人一区二区三区| 精品一区二区三区电影| 欧美黑人粗大| 一本色道久久99精品综合| 久久 天天综合| 国产亚洲成人av| 亚洲精选在线观看| 成人不卡视频| 青青草综合在线| 91在线精品一区二区| 久久亚洲精品石原莉奈| 日韩中文第一页| 丁香综合av| 亚洲一二三区av| 亚洲精品国产精品乱码不99| 神马午夜电影一区二区三区在线观看| 欧美一级视频一区二区| 成人同人动漫免费观看| 手机在线播放av| 色一情一乱一乱一91av| 欧美96在线| 国产一区二区三区无遮挡| 日韩高清在线不卡| 毛片a片免费观看| 亚洲人成电影网站色www| av在线成人| heyzo国产| 亚洲天堂av一区| 污污视频在线免费看| 国产精品视频一| 国产一区亚洲| 2019男人天堂| 欧美mv日韩mv国产网站| 在线看欧美视频| 国产真实老熟女无套内射| 国产女人18水真多18精品一级做 |