<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
距離swagger上次釋出版本已經過去兩年多了,一直沒有更新,與當前的springboot2.6.x、springboot2.7.x存在各種相容問題,對於即將釋出的springboot3.x,可能存在更多相容問題。如下圖所示。
其實swagger還在更新,應該是springfox不更新導致的,所以需要使用其他的API管理工具代替,springdoc是一種選擇
SpringDoc是一款可以結合SpringBoot使用的API檔案生成工具,基於OpenAPI 3,是一款更好用的Swagger庫!值得一提的是SpringDoc不僅支援Spring WebMvc專案,還可以支援Spring WebFlux專案,甚至Spring Rest和Spring Native專案。
gradle:
api group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.6.11'
maven:
<dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.6.11</version> </dependency>
建立一個spring設定類,新增springdoc的設定
@AutoConfiguration public class SpringDocConfig { @Bean public OpenAPI openAPI() { return new OpenAPI() .info(new Info() .title("newframe-介面檔案") .description("基於SpringDoc的線上介面檔案") .version("0.0.1")); } @Bean public GroupedOpenApi publicApi() { return GroupedOpenApi.builder() .group("許可權相關") .packagesToScan("com.iscas.biz.controller.common.auth") .build(); } @Bean public GroupedOpenApi adminApi() { return GroupedOpenApi.builder() .group("預設") .pathsToMatch("/**") .build(); } }
@Tag(name = "組織機構管理-OrgController") @RestController @RequestMapping("/org") @Validated @ConditionalOnMybatis public class OrgController extends BaseController { private final OrgService orgService; public OrgController(OrgService orgService) { this.orgService = orgService; } @Operation(summary="[組織機構]獲取組織機構樹", description="create by:朱全文 2021-02-20") @GetMapping public TreeResponse get() throws BaseException { return getTreeResponse().setValue(orgService.getTree()); } @Operation(summary="[組織機構]新增組織機構節點", description="create by:朱全文 2021-02-20") @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, description = "組織機構資料", content = @Content(schema = @Schema(implementation = Org.class))) @PostMapping("/node") public ResponseEntity addNode(@Valid @RequestBody Org org) throws BaseException { return getResponse().setValue(orgService.addOrg(org)); } @Operation(summary="[組織機構]修改組織機構節點", description="create by:朱全文 2021-02-20") @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, description = "組織機構資料", content = @Content(schema = @Schema(implementation = Org.class))) @PutMapping("/node") public ResponseEntity editNode(@Valid @RequestBody Org org) { return getResponse().setValue(orgService.editOrg(org)); } @Operation(summary="[組織機構]刪除組織機構節點", description="create by:朱全文 2021-02-20") @io.swagger.v3.oas.annotations.parameters.RequestBody(required = true, description = "組織機構ID集合", content = @Content(examples = @ExampleObject(value = "[123, 124]"))) @PostMapping("/node/del") @Caching(evict = { @CacheEvict(value = "auth", key = "'url_map'"), @CacheEvict(value = "auth", key = "'menus'"), @CacheEvict(value = "auth", key = "'role_map'") }) public ResponseEntity deleteNode(@RequestBody List<Integer> orgIds) { AssertCollectionUtils.assertCollectionNotEmpty(orgIds, "orgIds不能未空"); orgService.deleteNode(orgIds); return getResponse(); } }
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.path=/doc.html
還有其他的各種設定,可以在寫設定的時候檢視提示
@AutoConfiguration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry. addResourceHandler("/swagger-ui/**") .addResourceLocations("classpath:/META-INF/resources/webjars/springfox-swagger-ui/") .resourceChain(false); registry. addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/swagger-ui/") .setViewName("forward:/swagger-ui/index.html"); } }
存取地址:http://localhost:7901/demo/swagger-ui/ 或 http://localhost:7901/demo/doc.html
UI還使用swagger的UI,如下圖所示:
到此這篇關於Springdoc替換swagger的實現步驟分解的文章就介紹到這了,更多相關Springdoc替換swagger內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45