SpringBoot 使用Swagger2打造線上介面文件
阿新 • • 發佈:2018-12-15
專案例子:
一、依賴
<!--swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger2.version}<ersion> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger2.version}<ersion> </dependency> <swagger2.version>2.6.1</swagger2.version>
二、結構
三、程式碼示例
package com.etc.zhongtian.controller; import com.etc.zhongtian.domian.Constant; import com.etc.zhongtian.domian.DataValidator; import com.etc.zhongtian.domian.ResultBean; import com.etc.zhongtian.domian.User; import com.etc.zhongtian.service.UserService; import freemarker.template.Template; import io.swagger.annotations.*; import org.apache.tomcat.util.http.fileupload.FileUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.stereotype.Controller; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import org.springframework.web.bind.annotation.*; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; /** * @Description: 使用者控制層 */ @RestController @RequestMapping("user") @Api(value="使用者controller",tags={"使用者操作介面"}) public class UserController { @Autowired private UserService userService ; //使用者服務 @GetMapping("welcome") public String welcome(Map<String, Object> model) { model.put("time", new Date()); model.put("message", "王聰"); return "welcome"; } /** * 使用者查詢 * * password 密碼 * * key value * username wangcc * password 123456 * @return */ @ApiOperation(value="獲取使用者列表", notes="無引數獲取所有使用者資訊") @ApiResponses({ @ApiResponse(code = 1, message = "操作成功"), @ApiResponse(code = 0, message = "操作失敗,伺服器內部異常"), @ApiResponse(code = 303, message = "許可權不足") }) @GetMapping("get") public ResultBean queryUserAll(){ ResultBean result = new ResultBean(); List<User> dataAqiInfoList = new ArrayList<>(); if (result.getCode() == Constant.RESULT_CODE_SUCCESS){ dataAqiInfoList = userService.queryUserAll(); return result.ok(dataAqiInfoList); } return result; } /** * 分頁查詢使用者列表 * @param payload * @return */ @ApiOperation(value="分頁帶引數查詢使用者", notes="分頁帶引數查詢使用者") @ApiResponses({ @ApiResponse(code = 1, message = "操作成功"), @ApiResponse(code = 0, message = "操作失敗,伺服器內部異常"), @ApiResponse(code = 303, message = "許可權不足") }) @ApiImplicitParams({ @ApiImplicitParam(name = "pageIndex", value = "頁數", required = true, dataType = "String",paramType="query"), @ApiImplicitParam(name = "pageSize", value = "數量", required = true, dataType = "String",paramType="query") }) @GetMapping("paging/query") public ResultBean<Page<User>> pageUsers(@RequestParam Map<String, Object> payload) { ResultBean result = DataValidator.validateMapData(payload, "pageIndex","pageSize"); if (result.getCode() == Constant.RESULT_CODE_SUCCESS){ User user = new User(); user.setAge(payload.containsKey("age") ?payload.get("age") != null ? payload.get("age").toString():"":"" ); user.setName(payload.containsKey("name") ?payload.get("name") != null ? payload.get("name").toString():"":"" ); Page<User> pageSysUserInfo = userService.findBookCriteria(Integer.parseInt(payload.get("pageIndex") .toString()) ,Integer.parseInt(payload.get("pageSize").toString()),user); return result.ok(pageSysUserInfo); } return result; } @ApiOperation(value="更新使用者性別", notes="無引數獲取所有使用者資訊") @ApiResponses({ @ApiResponse(code = 1, message = "操作成功"), @ApiResponse(code = 0, message = "操作失敗,伺服器內部異常"), @ApiResponse(code = 303, message = "許可權不足") }) @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "使用者id", required = true, dataType = "String",paramType="query"), @ApiImplicitParam(name = "sex", value = "使用者性別", required = true, dataType = "String",paramType="query") }) @GetMapping("update") public ResultBean sdf(@RequestParam Map<String, Object> payload){ ResultBean result = DataValidator.validateMapData(payload, "id","sex"); if (result.getCode() == Constant.RESULT_CODE_SUCCESS){ boolean dataAqiInfoList = userService.update(payload.get("id").toString(),payload.get("sex").toString()); return result.ok(dataAqiInfoList); } return result; } }
package com.etc.zhongtian.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* @Description:
*/
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket myDocket() {
Docket docket = new Docket(DocumentationType.SWAGGER_2);
ApiInfo apiInfo = new ApiInfo( "中聯技術文件",
"如有疑問或者錯誤請聯絡下方郵箱:",
"1.0",
"apiDocs",
" [email protected]",
"",
"");
docket.apiInfo(apiInfo);
return docket;
}
}