溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

集成swagger2構(gòu)建Restful API的示例

發(fā)布時間:2021-02-02 13:52:05 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)集成swagger2構(gòu)建Restful API的示例的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在pom.xml中進行版本管理

<swagger.version>2.8.0</swagger.version>

給taosir-api的pom.xml中添加依賴配置

<!-- swagger start -->
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger2</artifactId>
  <version>${swagger.version}</version>
</dependency>
<dependency>
  <groupId>io.springfox</groupId>
  <artifactId>springfox-swagger-ui</artifactId>
  <version>${swagger.version}</version>
</dependency>

添加配置類

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
@Configuration
public class SwaggerConfiguration {
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .select()
        //控制暴露出去的路徑下的實例
        //如果某個接口不想暴露,可以使用以下注解
        //@ApiIgnore 這樣,該接口就不會暴露在 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();
  }
}

按順序啟動

taosir-eureka注冊中心

taosir-dreamHouse服務(wù)提供者

taoisr-api服務(wù)消費者

訪問地址 http://localhost:8765/swagger-ui.html#

集成swagger2構(gòu)建Restful API的示例

集成swagger2構(gòu)建Restful API的示例

以上,集成swagger2構(gòu)建Restful API

下面附上注解參考表

@Api:用在請求的類上,表示對類的說明
  tags="說明該類的作用,可以在UI界面上看到的注解"
  value="該參數(shù)沒什么意義,在UI界面上也看到,所以不需要配置"
 
@ApiOperation:用在請求的方法上,說明方法的用途、作用
  value="說明方法的用途、作用"
  notes="方法的備注說明"
 
@ApiImplicitParams:用在請求的方法上,表示一組參數(shù)說明
  @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一個請求參數(shù)的各個方面
    name:參數(shù)名
    value:參數(shù)的漢字說明、解釋
    required:參數(shù)是否必須傳
    paramType:參數(shù)放在哪個地方
      · header --> 請求參數(shù)的獲取:@RequestHeader
      · query --> 請求參數(shù)的獲?。篅RequestParam
      · path(用于restful接口)--> 請求參數(shù)的獲取:@PathVariable
      · body(不常用)
      · form(不常用)  
    dataType:參數(shù)類型,默認(rèn)String,其它值dataType="Integer"    
    defaultValue:參數(shù)的默認(rèn)值
 
@ApiResponses:用在請求的方法上,表示一組響應(yīng)
  @ApiResponse:用在@ApiResponses中,一般用于表達一個錯誤的響應(yīng)信息
    code:數(shù)字,例如400
    message:信息,例如"請求參數(shù)沒填好"
    response:拋出異常的類
 
@ApiModel:用于響應(yīng)類上,表示一個返回響應(yīng)數(shù)據(jù)的信息
      (這種一般用在post創(chuàng)建的時候,使用@RequestBody這樣的場景,
      請求參數(shù)無法使用@ApiImplicitParam注解進行描述的時候)
@ApiModelProperty:用在屬性上,描述響應(yīng)類的屬性

感謝各位的閱讀!關(guān)于“集成swagger2構(gòu)建Restful API的示例”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI