Springboot swagger配置過(guò)程詳解(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin)
本文是配置swagger的文章,版本是【2.9.2】
1、pom.xml的jar包引入
這里為了后文操作方便,我多添加了一個(gè)commons-lang3的包用于字符串的非空判斷。
<!-- swagger包這里2.9.2 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
<!-- 用作字符串非空判斷 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
2、創(chuàng)建【com.item.swagger】的配置文件【SwaggerConfig.java】
package com.item.swagger;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
private static Logger log = LoggerFactory.getLogger(SwaggerConfig.class);
@Bean
public Docket createRestApi() {
log.info("進(jìn)入到swagger的配置中");
return new Docket(DocumentationType.SWAGGER_2)
// 指定構(gòu)建api文檔的詳細(xì)信息的方法:apiInfo()
.apiInfo(apiInfo())
.groupName("紅目香薰·為大一孩子準(zhǔn)備的")
.select()
// 指定要生成api接口的包路徑,這里把controller作為包路徑,生成controller中的所有接口
.apis(RequestHandlerSelectors.basePackage("com.item.controller"))
.paths(PathSelectors.any())
.build();
}
/**
* 構(gòu)建api文檔的詳細(xì)信息
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
// 設(shè)置頁(yè)面標(biāo)題
.title("Spring Boot集成Swagger2接口總覽")
// 設(shè)置接口描述
.description("Swagger接口")
// 設(shè)置聯(lián)系方式
.contact(new Contact("測(cè)試swagger","https://laoshifu.blog.csdn.net/",""))
// 設(shè)置版本
.version("1.0")
// 構(gòu)建
.build();
}
}配置文件在上文的代碼中就可以看到,并且我寫了很多注釋,應(yīng)該是可以幫助到大家的。
3、示例swagger注解寫法
package com.item.controller;
import com.item.model.Users;
import com.item.service.UsersService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
@Api("用戶操作接口")
@RestController
@CrossOrigin
public class UsersController {
@Autowired
private UsersService usersService;
/**
* 獲取所有信息
* @return
*/
@GetMapping("/GetInfoApi")
@ApiOperation(value = "獲取信息",notes = "沒啥留言的")
public Object GetInfoApi(){
List<Users> list=usersService.GetInfo();
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("state",true);
map.put("msg","成功");
map.put("result",list);
return map;
}
@GetMapping("/GetName")
@ApiOperation(value = "獲取信息",notes = "沒啥留言的")
@ApiImplicitParams({
@ApiImplicitParam(name = "nickName",required = true,paramType = "query",dataType = "String",value = "通過(guò)昵稱模糊查詢")
})
public Object GetName(HttpServletRequest request,Model model){
String nickName = request.getParameter("nickName");
List<Users> list=usersService.SelectName(nickName);
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("state",true);
map.put("msg","成功");
map.put("result",list);
return map;
}
/**
* 添加信息
* @param userName
* @param pwd
* @param nickName
* @return
*/
@PostMapping(value = "/UserAddInfoApi")
@ApiOperation(value = "添加",notes = "沒啥留言的")
@ApiImplicitParams({
@ApiImplicitParam(name = "userName",required = true,paramType = "query",dataType = "String",value = "用戶名"),
@ApiImplicitParam(name = "pwd",required = true,paramType = "query",dataType = "String",value = "密碼"),
@ApiImplicitParam(name = "nickName",required = true,paramType = "query",dataType = "String",value = "昵稱")
})
public Object UserAddInfoApi(String userName,String pwd,String nickName){
HashMap<String,Object> map=new HashMap<String,Object>();
if(
StringUtils.isEmpty(userName)||
StringUtils.isEmpty(pwd)||
StringUtils.isEmpty(nickName)
){
map.put("state",false);
map.put("msg","參數(shù)不潤(rùn)許為空");
map.put("result","");
return map;
}
usersService.UsersAddInfo(userName, pwd, nickName);
map.put("state",true);
map.put("msg","成功");
map.put("result","");
return map;
}
/**
* 單個(gè)查詢
* @param id
* @return
*/
@GetMapping("/UsersSelectById")
@ApiOperation(value = "id查詢",notes = "沒啥留言的")
@ApiImplicitParams({
@ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)")
})
public Object UsersSelectById(String id){
Users users = usersService.UsersSelectById(Integer.parseInt(id));
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("state",true);
map.put("msg","成功");
map.put("result",users);
return map;
}
/**
* 修改api
* @param id
* @param pwd
* @return
*/
@PostMapping(value = "/UserUpdateInfoApi")
@ApiOperation(value = "添加",notes = "沒啥留言的")
@ApiImplicitParams({
@ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)"),
@ApiImplicitParam(name = "pwd",required = true,paramType = "query",dataType = "String",value = "密碼"),
})
public Object UserUpdateInfoApi(String id,String pwd){
usersService.UsersUpdateInfo(pwd,Integer.parseInt(id));
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("state",true);
map.put("msg","成功");
map.put("result","");
return map;
}
/**
* 刪除api
* @param id
* @return
*/
@GetMapping(value = "/UsersDeleteById")
@ApiOperation(value = "根據(jù)id刪除",notes = "沒啥留言的")
@ApiImplicitParams({
@ApiImplicitParam(name = "id",required = true,paramType = "query",dataType = "String",value = "編號(hào)")
})
public Object UsersDeleteById(String id){
usersService.UsersDeleteById(Integer.parseInt(id));
HashMap<String,Object> map=new HashMap<String,Object>();
map.put("state",true);
map.put("msg","成功");
map.put("result","");
return map;
}
}4、swagger的常用注解
@Api:用于標(biāo)識(shí)一個(gè)類為 Swagger 文檔的資源。 用法示例:@Api(value = "User API", = "User Management")
@ApiOperation:用于描述一個(gè)方法的操作信息。 用法示例:@ApiOperation(value = "Get user by ID", notes = "Returns a user based on ID")
@ApiParam:用于描述一個(gè)方法參數(shù)的信息。 用法示例:@ApiParam(value = "User ID", required = true) @PathVariable("id") Long id
@ApiModel:用于描述一個(gè)數(shù)據(jù)模型(DTO)的信息。 用法示例:@ApiModel(value = "User", description = "User details")
@ApiModelProperty:用于描述一個(gè)屬性或字段的信息。 用法示例:@ApiModelProperty(value = "User name")
@ApiResponses:用于描述一個(gè)方法的多個(gè)響應(yīng)。 用法示例:@ApiResponses(value = { @ApiResponse(code = 200, message = "Success"), @ApiResponse(code = 404, message = "Not Found") })
@ApiIgnore:用于指定某個(gè)方法或類不在 Swagger 文檔中顯示。 用法示例:@ApiIgnore
5、訪問(wèn)效果
網(wǎng)頁(yè)的路徑是【http://127.0.0.1:8088/MyAPI/swagger-ui.html】 ,拼接方法是【ip:port/path/swagger-ui.html】
這里的path是在配置文件中的服務(wù)路徑【server.servlet.context-path=/MyAPI】

總結(jié)
swagger是比較常用的一種API交流插件,JAVA和.NET都用,且大多數(shù)程序員都會(huì)使用,方便大家交流API。
到此這篇關(guān)于Springboot-swagger配置(idea社區(qū)版2023.1.4+apache-maven-3.9.3-bin)的文章就介紹到這了,更多相關(guān)Springboot-swagger配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
ThreadPoolExecutor中的submit()方法詳細(xì)講解
在使用線程池的時(shí)候,發(fā)現(xiàn)除了execute()方法可以執(zhí)行任務(wù)外,還發(fā)現(xiàn)有一個(gè)方法submit()可以執(zhí)行任務(wù),本文就詳細(xì)的介紹一下ThreadPoolExecutor中的submit()方法,具有一定的參考價(jià)值,感興趣的可以了解一下2022-04-04
Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的踩坑記錄
在某些情況下,需要在執(zhí)行新增后,需要獲取到新增行的id,這篇文章主要給大家介紹了關(guān)于Mybatis?Plus插入數(shù)據(jù)后獲取新數(shù)據(jù)id值的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
IDEA 將 SpringBoot 項(xiàng)目打包成jar的方法
這篇文章主要介紹了IDEA 將 SpringBoot 項(xiàng)目打包成jar的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
使用java項(xiàng)目搭建一個(gè)netty服務(wù)
這篇文章主要為大家詳細(xì)介紹了如何使用java項(xiàng)目搭建一個(gè)netty服務(wù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-10-10
Java基礎(chǔ)之?dāng)?shù)組超詳細(xì)知識(shí)總結(jié)
這篇文章主要介紹了Java基礎(chǔ)之?dāng)?shù)組詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
java實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
Java如何主動(dòng)從當(dāng)前線程獲取異常信息
這篇文章主要介紹了Java如何主動(dòng)從當(dāng)前線程獲取異常信息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10
LIS 最長(zhǎng)遞增子序列 Java的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇LIS 最長(zhǎng)遞增子序列 Java的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09

