swagger2中怎么構(gòu)建RestfulAPI,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),千余家客戶的共同信賴。提供做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、網(wǎng)站定制、買友情鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)在pom.xml中進(jìn)行版本管理
給taosir-api的pom.xml中添加依賴配置
添加配置類
package cn.taosir.api.config;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.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@EnableSwagger2@Configurationpublic class SwaggerConfiguration { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //控制暴露出去的路徑下的實(shí)例 //如果某個(gè)接口不想暴露,可以使用以下注解 //@ApiIgnore 這樣,該接口就不會(huì)暴露在 swagger2 的頁面下 .apis(RequestHandlerSelectors.basePackage("cn.taosir.api.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("濤先森系統(tǒng)入口業(yè)務(wù)測試") .version("1.0") .description("API 描述") .build(); }}
為控制層添加相應(yīng)注解
package cn.taosir.api.controller.dreamhouse;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;import cn.taosir.service.dreamHouse.UserService;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;@RestController@Api(value = "用戶管理" ,tags = {"用戶的接口"})public class UserController { @Autowired private UserService userService; @ApiOperation(value="測試方法", notes="測試是否成功使用服務(wù)發(fā)現(xiàn)") @RequestMapping(value="/test",method=RequestMethod.GET) public String test() { return userService.test(); }}
按順序啟動(dòng)
taosir-eureka注冊中心
taosir-dreamHouse服務(wù)提供者
taoisr-api服務(wù)消費(fèi)者
訪問地址 http://localhost:8765/swagger-ui.html#
以上,集成swagger2構(gòu)建Restful API
下面附上注解參考表
@Api:用在請(qǐng)求的類上,表示對(duì)類的說明 tags="說明該類的作用,可以在UI界面上看到的注解" value="該參數(shù)沒什么意義,在UI界面上也看到,所以不需要配置" @ApiOperation:用在請(qǐng)求的方法上,說明方法的用途、作用 value="說明方法的用途、作用" notes="方法的備注說明" @ApiImplicitParams:用在請(qǐng)求的方法上,表示一組參數(shù)說明 @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個(gè)請(qǐng)求參數(shù)的各個(gè)方面 name:參數(shù)名 value:參數(shù)的漢字說明、解釋 required:參數(shù)是否必須傳 paramType:參數(shù)放在哪個(gè)地方 · header --> 請(qǐng)求參數(shù)的獲?。篅RequestHeader · query --> 請(qǐng)求參數(shù)的獲取:@RequestParam · path(用于restful接口)--> 請(qǐng)求參數(shù)的獲?。篅PathVariable · body(不常用) · form(不常用) dataType:參數(shù)類型,默認(rèn)String,其它值dataType="Integer" defaultValue:參數(shù)的默認(rèn)值 @ApiResponses:用在請(qǐng)求的方法上,表示一組響應(yīng) @ApiResponse:用在@ApiResponses中,一般用于表達(dá)一個(gè)錯(cuò)誤的響應(yīng)信息 code:數(shù)字,例如400 message:信息,例如"請(qǐng)求參數(shù)沒填好" response:拋出異常的類 @ApiModel:用于響應(yīng)類上,表示一個(gè)返回響應(yīng)數(shù)據(jù)的信息 (這種一般用在post創(chuàng)建的時(shí)候,使用@RequestBody這樣的場景, 請(qǐng)求參數(shù)無法使用@ApiImplicitParam注解進(jìn)行描述的時(shí)候)@ApiModelProperty:用在屬性上,描述響應(yīng)類的屬性
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。