日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

springMVC整合swagger(亲自试验完全可用)

發布時間:2025/3/16 c/c++ 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 springMVC整合swagger(亲自试验完全可用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

swagger是什么:

[plain]?view plaincopyprint?
  • Swagger?是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件。本文簡單介紹了在項目中集成swagger的方法和一些常見問題。如果想深入分析項目源碼,了解更多內容,見參考資料。??
  • Swagger?是一個規范和完整的框架,用于生成、描述、調用和可視化?RESTful?風格的?Web?服務。總體目標是使客戶端和文件系統作為服務器以同樣的速度來更新。文件的方法,參數和模型緊密集成到服務器端的代碼,允許API來始終保持同步。Swagger?讓部署管理和使用功能強大的API從未如此簡單。??

  • 將swagger集成到springmvc項目中去:

    首先添加swagger依賴,作者用的maven管理:

    [html]?view plaincopyprint?
  • <!--?swagger?-->??
  • <dependency>????
  • ????<groupId>com.mangofactory</groupId>????
  • ????<artifactId>swagger-springmvc</artifactId>????
  • ????<version>1.0.2</version>????
  • </dependency>??
  • <dependency>??
  • ????<groupId>com.fasterxml.jackson.core</groupId>??
  • ????<artifactId>jackson-core</artifactId>??
  • ????<version>2.5.1</version>??
  • </dependency>??
  • <dependency>??
  • ????<groupId>com.fasterxml.jackson.core</groupId>??
  • ????<artifactId>jackson-databind</artifactId>??
  • ????<version>2.5.1</version>??
  • </dependency>??
  • <dependency>??
  • ????<groupId>com.fasterxml.jackson.core</groupId>??
  • ????<artifactId>jackson-annotations</artifactId>??
  • ????<version>2.5.1</version>??
  • </dependency>???
  • 創建自定義swagger初始化配置文件:

    [java]?view plaincopyprint?
  • package?com.yrok.swagger;??
  • ??
  • import?org.springframework.beans.factory.annotation.Autowired;??
  • import?org.springframework.context.annotation.Bean;??
  • ??
  • import?com.mangofactory.swagger.configuration.SpringSwaggerConfig;??
  • import?com.mangofactory.swagger.models.dto.ApiInfo;??
  • import?com.mangofactory.swagger.plugin.EnableSwagger;??
  • import?com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;??
  • ??
  • @EnableSwagger??
  • public?class?SwaggerConfig?{??
  • ??
  • ????private?SpringSwaggerConfig?springSwaggerConfig;??
  • ??
  • ????/**?
  • ?????*?Required?to?autowire?SpringSwaggerConfig?
  • ?????*/??
  • ????@Autowired??
  • ????public?void?setSpringSwaggerConfig(SpringSwaggerConfig?springSwaggerConfig)??
  • ????{??
  • ????????this.springSwaggerConfig?=?springSwaggerConfig;??
  • ????}??
  • ??
  • ????/**?
  • ?????*?Every?SwaggerSpringMvcPlugin?bean?is?picked?up?by?the?swagger-mvc?
  • ?????*?framework?-?allowing?for?multiple?swagger?groups?i.e.?same?code?base?
  • ?????*?multiple?swagger?resource?listings.?
  • ?????*/??
  • ????@Bean??
  • ????public?SwaggerSpringMvcPlugin?customImplementation()??
  • ????{??
  • ????????return?new?SwaggerSpringMvcPlugin(this.springSwaggerConfig)??
  • ????????????????.apiInfo(apiInfo())??
  • ????????????????.includePatterns(".*?");??
  • ????}??
  • ??
  • ????private?ApiInfo?apiInfo()??
  • ????{??
  • ????????ApiInfo?apiInfo?=?new?ApiInfo(??
  • ????????????????"springmvc搭建swagger",??
  • ????????????????"spring-API?swagger測試",??
  • ????????????????"My?Apps?API?terms?of?service",??
  • ????????????????"534560449@qq.com",??
  • ????????????????"web?app",??
  • ????????????????"My?Apps?API?License?URL");??
  • ????????return?apiInfo;??
  • ????}??
  • }??
  • 將swagger配置類及依賴SpringSwaggerConfig加載到spring容器中:

    [html]?view plaincopyprint?
  • <!--?啟用MVC注解?-->??
  • <mvc:annotation-driven?/>??
  • <!--?將?springSwaggerConfig加載到spring容器?-->??
  • <bean?class="com.mangofactory.swagger.configuration.SpringSwaggerConfig"?/>??
  • <!--?將自定義的swagger配置類加載到spring容器?-->??
  • <bean?class="com.yrok.swagger.SwaggerConfig"?/>??
  • 配置相關controller的api:

    [java]?view plaincopyprint?
  • package?com.yrok.controller;??
  • ??
  • import?javax.annotation.Resource;??
  • ??
  • import?org.springframework.stereotype.Controller;??
  • import?org.springframework.web.bind.annotation.RequestMapping;??
  • import?org.springframework.web.bind.annotation.RequestParam;??
  • import?org.springframework.web.bind.annotation.ResponseBody;??
  • ??
  • import?com.wordnik.swagger.annotations.Api;??
  • import?com.wordnik.swagger.annotations.ApiOperation;??
  • import?com.wordnik.swagger.annotations.ApiParam;??
  • import?com.yrok.entity.User;??
  • import?com.yrok.service.UserService;??
  • @Api(value="user")??
  • @Controller??
  • @RequestMapping(value="/user")??
  • public?class?UserController?{??
  • ??
  • ????@Resource??
  • ????UserService?userService;??
  • ??
  • ????@RequestMapping(value?=?"/getUser")??
  • ????@ResponseBody??
  • ????@ApiOperation(value="根據ID獲取用戶信息",httpMethod="GET",notes="get?user?by?id",response=User.class)??
  • ????public?User?getUser(@ApiParam(required=true,value="用戶ID",name="userId")@RequestParam(value="userId")Integer?userId)?{??
  • ????????return?userService.getUserByID(userId);??
  • ????}??
  • ??????
  • }??
  • 和Swagger UI的集成:

    在GitHub上將swaggerui下載,地址:https://github.com/swagger-api/swagger-ui

    解壓后將dist文件夾中所有的文件拷貝到webapp/swagger這里的swagger是作者自定義的你可以寫為自己創建的目錄。

    修改index.html中的 http://petstore.swagger.wordnik.com/v2/swagger.json修改為自己項目路徑+api-docs,例如:

    http://localhost:8080/SSMSwagger/api-docs:SSMSwagger為項目名稱。

    在spring-mvc.xml中過濾掉swagger-ui的文件:

    [html]?view plaincopyprint?
  • <!--?靜態資源文件,不會被Spring?MVC攔截?-->??
  • <mvc:resources?mapping="/swagger/**"?location="/swagger/"?/>??
  • 到這里基本完成了springmvc和swagger的整合,下面是測試結果:

    在瀏覽器中訪問:http://localhost:8080/SSMSwagger/swagger/index.html#/user/getUser


    到此,本篇文章已經結束,下面分享其他資料和參考:

    參考地址:
    官網:http://swagger.io/
    GitHub:
    swagger-springmvc:https://github.com/martypitt/swagger-springmvc
    swagger-ui:https://github.com/swagger-api/swagger-ui
    swagger-core:https://github.com/swagger-api/swagger-core
    swagger-spec:https://github.com/swagger-api/swagger-spec

    總結

    以上是生活随笔為你收集整理的springMVC整合swagger(亲自试验完全可用)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。