OpenAPI規範(OpenAPI Specification 簡稱OAS)是Linux基金會的一個項目,試圖經過定義一種用來描述API格 式或API定義的語言,來規範RESTful服務開發過程,目前版本是V3.0,而且已經發布並開源在github上。 (https://github.com/OAI/OpenAPI-Specification) Swagger是全球最大的OpenAPI規範(OAS)API開發工具框架,支持從設計和文檔到測試和部署的整個API生命周 期的開發。 (https://swagger.io/) Spring Boot 能夠集成Swagger,生成Swagger接口,Spring Boot是Java領域的神器,它是Spring項目下快速構建 項目的框架。html
● 導入Swagger依賴git
<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version> </dependency>
● 定義Swagger配置類。@EnableSwagger2是開啓Swagger的註解github
@EnableSwagger2 public class Swagger2Configuration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select()
//掃描com.xuecheng下全部帶@RestController的類 .apis(RequestHandlerSelectors.basePackage("com.xuecheng")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("學成網api文檔") .description("學成網api文檔") // .termsOfServiceUrl("/") .version("1.0") .build(); } }
● 定義接口使用Swagger提供的註解spring
@Api(value="cms頁面管理接口",description = "cms頁面管理接口,提供頁面的增、刪、改、查") public interface CmsPageControllerApi { @ApiOperation("分頁查詢頁面列表") @ApiImplicitParams({ @ApiImplicitParam(name="page",value = "頁碼",required=true,paramType="path",dataType="int"), @ApiImplicitParam(name="size",value = "每頁記錄數",required=true,paramType="path",dataType="int") }) public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest); }
● 模型類使用使用Swagger提供的註解api
@Data public class QueryPageRequest extends RequestData { @ApiModelProperty("站點id") private String siteId; @ApiModelProperty("頁面ID") private String pageId; @ApiModelProperty("頁面名稱") private String pageName; @ApiModelProperty("別名") private String pageAliase; @ApiModelProperty("模版id") private String templateId; }
● 測試Swaggger。訪問根路徑下的swagger-ui.html框架