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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring MVC中使用 Swagger2 构建Restful API

發布時間:2023/11/30 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring MVC中使用 Swagger2 构建Restful API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0.Spring MVC配置文件中的配置

[java]?view plain?copy
  • <!--?設置使用注解的類所在的jar包,只加載controller類?-->??
  • <span?style="white-space:pre">????</span><context:component-scan?base-package="com.jay.plat.config.controller"?/>???
  • [java]?view plain?copy
  • <!--?使用?Swagger?Restful?API文檔時,添加此注解?-->??
  • ????<mvc:default-servlet-handler?/>??


  • 1.maven依賴

    [html]?view plain?copy
  • <!--?構建Restful?API?-->??
  • ??????????
  • ????????<dependency>??
  • ????????????<groupId>io.springfox</groupId>??
  • ????????????<artifactId>springfox-swagger2</artifactId>??
  • ????????????<version>2.4.0</version>??
  • ????????</dependency>??
  • ????????<dependency>??
  • ????????????<groupId>io.springfox</groupId>??
  • ????????????<artifactId>springfox-swagger-ui</artifactId>??
  • ????????????<version>2.4.0</version>??
  • ????????</dependency>??


  • 2.Swagger配置文件

    [java]?view plain?copy
  • package?com.jay.plat.config.util;??
  • ??
  • import?org.springframework.context.annotation.Bean;??
  • import?org.springframework.context.annotation.ComponentScan;??
  • import?org.springframework.context.annotation.Configuration;??
  • import?org.springframework.web.servlet.config.annotation.EnableWebMvc;??
  • import?org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;??
  • ??
  • ??
  • 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;??
  • /*?
  • ?*?Restful?API?訪問路徑:?
  • ?*?http://IP:port/{context-path}/swagger-ui.html?
  • ?*?eg:http://localhost:8080/jd-config-web/swagger-ui.html?
  • ?*/??
  • @EnableWebMvc??
  • @EnableSwagger2??
  • @ComponentScan(basePackages?=?{"com.<span?style="font-family:Arial,?Helvetica,?sans-serif;">jay.</span>plat.config.controller"})??
  • @Configuration??
  • public?class?RestApiConfig?extends?WebMvcConfigurationSupport{??
  • ??
  • ????@Bean??
  • ????public?Docket?createRestApi()?{??
  • ????????return?new?Docket(DocumentationType.SWAGGER_2)??
  • ????????????????.apiInfo(apiInfo())??
  • ????????????????.select()??
  • ????????????????.apis(RequestHandlerSelectors.basePackage("com.jay.plat.config.controller"))??
  • ????????????????.paths(PathSelectors.any())??
  • ????????????????.build();??
  • ????}??
  • ??
  • ????private?ApiInfo?apiInfo()?{??
  • ????????return?new?ApiInfoBuilder()??
  • ????????????????.title("Spring?中使用Swagger2構建RESTful?APIs")??
  • ????????????????.termsOfServiceUrl("http://blog.csdn.net/he90227")??
  • ????????????????.contact("逍遙飛鶴")??
  • ????????????????.version("1.1")??
  • ????????????????.build();??
  • ????}??
  • }??


  • 配置說明:

    ? ? ? ? ? ??

    [html]?view plain?copy
  • @Configuration?配置注解,自動在本類上下文加載一些環境變量信息??
  • @EnableWebMvc???
  • @EnableSwagger2?使swagger2生效??
  • @ComponentScan("com.myapp.packages")?需要掃描的包路徑??

  • 3.Controller中使用注解添加API文檔

    [java]?view plain?copy
  • package?com.jay.spring.boot.demo10.swagger2.controller;??
  • ??
  • import?java.util.ArrayList;??
  • import?java.util.Collections;??
  • import?java.util.HashMap;??
  • import?java.util.List;??
  • import?java.util.Map;??
  • ??
  • import?org.springframework.web.bind.annotation.PathVariable;??
  • import?org.springframework.web.bind.annotation.RequestBody;??
  • import?org.springframework.web.bind.annotation.RequestMapping;??
  • import?org.springframework.web.bind.annotation.RequestMethod;??
  • import?org.springframework.web.bind.annotation.RestController;??
  • ??
  • import?com.jay.spring.boot.demo10.swagger2.bean.User;??
  • ??
  • import?io.swagger.annotations.ApiImplicitParam;??
  • import?io.swagger.annotations.ApiImplicitParams;??
  • import?io.swagger.annotations.ApiOperation;??
  • ??
  • @RestController??
  • @RequestMapping(value?=?"/users")?//?通過這里配置使下面的映射都在/users下,可去除??
  • public?class?UserController?{??
  • ??
  • ????static?Map<Long,?User>?users?=?Collections.synchronizedMap(new?HashMap<Long,?User>());??
  • ??
  • ????@ApiOperation(value?=?"獲取用戶列表",?notes?=?"")??
  • ????@RequestMapping(value?=?{?""?},?method?=?RequestMethod.GET)??
  • ????public?List<User>?getUserList()?{??
  • ????????List<User>?r?=?new?ArrayList<User>(users.values());??
  • ????????return?r;??
  • ????}??
  • ??
  • ????@ApiOperation(value?=?"創建用戶",?notes?=?"根據User對象創建用戶")??
  • ????@ApiImplicitParam(name?=?"user",?value?=?"用戶詳細實體user",?required?=?true,?dataType?=?"User")??
  • ????@RequestMapping(value?=?"",?method?=?RequestMethod.POST)??
  • ????public?String?postUser(@RequestBody?User?user)?{??
  • ????????users.put(user.getId(),?user);??
  • ????????return?"success";??
  • ????}??
  • ??
  • ????@ApiOperation(value?=?"獲取用戶詳細信息",?notes?=?"根據url的id來獲取用戶詳細信息")??
  • ????@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long")??
  • ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.GET)??
  • ????public?User?getUser(@PathVariable?Long?id)?{??
  • ????????return?users.get(id);??
  • ????}??
  • ??
  • ????@ApiOperation(value?=?"更新用戶詳細信息",?notes?=?"根據url的id來指定更新對象,并根據傳過來的user信息來更新用戶詳細信息")??
  • ????@ApiImplicitParams({?@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long"),??
  • ????????????@ApiImplicitParam(name?=?"user",?value?=?"用戶詳細實體user",?required?=?true,?dataType?=?"User")?})??
  • ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.PUT)??
  • ????public?String?putUser(@PathVariable?Long?id,?@RequestBody?User?user)?{??
  • ????????User?u?=?users.get(id);??
  • ????????u.setName(user.getName());??
  • ????????u.setAge(user.getAge());??
  • ????????users.put(id,?u);??
  • ????????return?"success";??
  • ????}??
  • ??
  • ????@ApiOperation(value?=?"刪除用戶",?notes?=?"根據url的id來指定刪除對象")??
  • ????@ApiImplicitParam(name?=?"id",?value?=?"用戶ID",?required?=?true,?dataType?=?"Long")??
  • ????@RequestMapping(value?=?"/{id}",?method?=?RequestMethod.DELETE)??
  • ????public?String?deleteUser(@PathVariable?Long?id)?{??
  • ????????users.remove(id);??
  • ????????return?"success";??
  • ????}??
  • ??
  • }??

  • 4.效果展示

    訪問路徑:[java]?view plain?copy
  • Restful?API?訪問路徑:??
  • ?*?http://IP:port/{context-path}/swagger-ui.html??
  • ?*?eg:http://localhost:8080/jd-config-web/swagger-ui.html??


  • 參考: http://www.cnblogs.com/yuananyun/p/4993426.html
    http://www.jianshu.com/p/8033ef83a8ed

    總結

    以上是生活随笔為你收集整理的Spring MVC中使用 Swagger2 构建Restful API的全部內容,希望文章能夠幫你解決所遇到的問題。

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