免费在线a视频-免费在线观看a视频-免费在线观看大片影视大全-免费在线观看的视频-色播丁香-色播基地

Swagger --Api接口文檔

:2021年12月30日 aBiu
分享到:

前后端分離,后臺負責寫接口。隨著接口越來越多,隨時改變接口的可能性也很大,大家爭吵是很正常的。

Swagger簡介

前后端分離

最常見的:Vue + SpringBoot

前后端分離,后臺負責寫接口。隨著接口越來越多,隨時改變接口的可能性也很大,大家爭吵是很正常的。

解決方案

  • 先指定計劃提綱,事實更新API,降低集成風險

  • 傳統是需要自己去維護一個doc的文檔或者公司統一放在一個接口清單的web服務上。每次開發者需要單獨添加上去。修改后還需要維護。

  • 前后端分離:

    • 前端測試后端接口:postman,就為了測一個接口還要下載第三方軟件,太奢侈了

    • 后端提供接口,實時更新消息及變動

現接入swagger,通過簡單的注解即可生成文檔,并且隨著接口變化自動會變化。統一管理方便快捷

Swagger

  • 號稱最流行的API框架

  • RestFul Api 文檔在線自動生產,Api文檔與定義同步更新

  • 直接運行,可以在線測試接口

  • 支持多種語言(java、php等)

官網:https://swagger.io/

SpringBoot集成Swagger

1.新建SpringBoot項目
2.導入依賴

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.1</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
    </dependency>

3.隨便寫一個controller接口,比如 hello
4.配置swagger2,swagger2 是新版的,和swagger 是不一樣的哦!

/**
 * @author : aBiu---
 *
 * create at:  2019-12-20  16:20
 *
 * description: api接口配置
 */@Configuration@EnableSwagger2     // 開啟public class SwaggerConfig {  private ApiInfo apiInfo() {    return new ApiInfoBuilder().title("API接口文檔") //頁面標題
        .description("接口管理")//詳細描述
        .version("1.0.0") //版本號
        .build();
  }  @Bean
  public Docket createRestApi() {    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())     // 需要上面定義的ApiInfo,信息顯示到頁面上
        .groupName("aBiu")      // 分組,如果想搞多個分組,就寫多個Docket 的示例就行了
        .select()
        .apis(RequestHandlerSelectors.basePackage("com.*")) //這里寫的是API接口所在的包位置,也可以設置其他掃描方式
        .paths(PathSelectors.any())     // 過濾,有好幾種方式可以設置
        .build();
  }
}

5.測試運行,然后訪問:http://localhost:8080/swagger-ui.htmlhttp://localhost:8080/swagger-ui/index.html

由于版本的不同,可能名字不一樣,具體可以到jar包里去看一下就好了

Swagger注解

@Api:          修飾類,一般來描述Controller的@ApiOperation:     描述類的 方法 或者 接口@ApiParam:       單個參數描述@ApiModel:       用在實體類上面@ApiProperty:     實體類里面的屬性@ApiImplicitParam:      用在 @ApiImplicitParams 注解中,指定一個請求參數的配置信息               
                name:參數名        
                value:參數的漢字說明、解釋        
                required:參數是否必須傳        
                paramType:參數放在哪個地方            · 
                header --> 請求參數的獲?。篅RequestHeader            · 
                query --> 請求參數的獲?。篅RequestParam            · 
                path(用于restful接口)--> 請求參數的獲取:@PathVariable            · 
                body(不常用)            · 
                form(不常用)            
                dataType:參數類型,默認String,其它值dataType="Integer"                               defaultValue:參數的默認值
                其它若干@ApiResponse:     描述HTTP響應其中1個的描述@ApiResponses:     描述出HTTP響應整體描述@ApiClass@ApiError@ApiErrors@ApiParamImplicit@ApiParamsImplicit

示例:一個接口的說明(controller類)

/**
     * XXX 認證人員信息接口
     * @param signerType
     * @param certType
     * @param certNo
     * @param name
     * @param phoneNo
     * @param cardNo
     * @param signSupplier
     * @param authType
     * @param notifyUrl
     * @return
     */
    @ApiOperation(value = "XXX 的接口", httpMethod = "POST")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "String", name = "signerType", dataType = "String", required = true, value = "簽署人類型:1.個人,2.企業"),
            @ApiImplicitParam(paramType = "String", name = "certType", dataType = "String", required = false, value = "證件類型:簽署人類型是個人時必填"),
            @ApiImplicitParam(paramType = "String", name = "certNo", dataType = "String", required = false, value = "簽署人類型:簽署人類型是個人時必填"),
            @ApiImplicitParam(paramType = "String", name = "name", dataType = "String", required = true, value = "姓名"),
            @ApiImplicitParam(paramType = "String", name = "phoneNo", dataType = "String", required = false, value = "手機號:簽署人類型是個人時必填"),
            @ApiImplicitParam(paramType = "String", name = "notifyUrl", dataType = "String", required = false, value = "回調地址")
    })
    @PostMapping("/signerInfo")
    public ResultInfo signerInfo(String signerType, String certType, String certNo, String name, String phoneNo, @RequestParam(required = false) String notifyUrl){        return contractService.signerInfo(signerType,certType,certNo,name,phoneNo,cardNo,signSupplier,authType,notifyUrl);
    }
項目發布上線時候,一定要記得,一定要記得,把swagger 關閉,因為你不可能讓用戶看到你的接口吧?

生成漂亮的ui界面

加入依賴

    <dependency>
        <groupId>com.github.caspar-chen</groupId>
        <artifactId>swagger-ui-layer</artifactId>
        <version>1.1.3</version>
    </dependency>

訪問地址 http://localhost:8080/docs.html

這個好像沒有分組的屬性,如果swagger配置時候加了分組,在這里會有異常

[我要糾錯]
文:王振袢&發表于江蘇
關鍵詞: Swagger 簡介 后端 分離 常見

來源:本文內容搜集或轉自各大網絡平臺,并已注明來源、出處,如果轉載侵犯您的版權或非授權發布,請聯系小編,我們會及時審核處理。
聲明:江蘇教育黃頁對文中觀點保持中立,對所包含內容的準確性、可靠性或者完整性不提供任何明示或暗示的保證,不對文章觀點負責,僅作分享之用,文章版權及插圖屬于原作者。

點個贊
0
踩一腳
0

您在閱讀:Swagger --Api接口文檔

Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發布查詢平臺保留所有權利

蘇公網安備32010402000125 蘇ICP備14051488號-3技術支持:南京博盛藍睿網絡科技有限公司

南京思必達教育科技有限公司版權所有   百度統計

主站蜘蛛池模板: 99ri在线精品视频在线播放 | 精品国产人成在线 | 亚洲精品国产精品精 | 永久黄网站色视频免费观看99 | 午夜小福利 | 最近中文字幕高清字幕 | xxxxchina麻豆免费视频 | 久一视频在线 | 91看片淫黄大片欧美看国产片 | 天堂五月天 | 欧美巨大另类极品video | 国产成人18黄禁网站免费观看 | 香蕉成人在线视频 | 欧美xxxx成人免费网站 | 精品国产一区二区麻豆 | 97夜夜澡人人爽人人喊一欧美 | 日韩亚洲欧美在线观看 | 黑人又大又粗又长又深受不了 | 爆操美女在线观看 | 精品免费在线 | 亚洲国产欧美日韩一区二区三区 | 免费国产a国产片高清不卡 免费国产a | 中文字幕精品亚洲无线码二区 | 男女上下猛烈动态图午夜 | 99九九99九九九视频精品 | 天天做夜夜做久久做狠狠 | 九九视频免费精品视频免费 | 国产又黄又爽又猛的免费视频播放 | free极度另类性欧美 | 国产欧美亚洲精品a | 韩国日本三级在线播放 | 国产特黄特色的大片观看免费视频 | 韩国三级日本三级在线观看 | 精品视频一区在线观看 | 国产成人综合在线 | 欧美91在线| 欧美人与性另类 | 亚洲人成网站色7777 | 国产黄大片在线观看视频 | 欧美久久xxxxxx影院 | 国产一区二区三区免费播放 |
最熱文章
最新文章
  • 阿里云上云鉅惠,云產品享最低成本,有需要聯系,
  • 卡爾蔡司鏡片優惠店,鏡片價格低
  • 蘋果原裝手機殼