Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

作用:

1. 接口的文档在线自动生成。

2. 功能测试。

1.添加pom.xml

  1. <dependency>
  2. <groupId>io.springfox</groupId>
  3. <artifactId>springfox-swagger-ui</artifactId>
  4. <version>2.7.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>io.springfox</groupId>
  8. <artifactId>springfox-swagger2</artifactId>
  9. <version>2.7.0</version>
  10. </dependency>

2.在启动类同级增加类

  1. package com;
  2.  
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.Configuration;
  5.  
  6. import springfox.documentation.builders.ApiInfoBuilder;
  7. import springfox.documentation.builders.PathSelectors;
  8. import springfox.documentation.builders.RequestHandlerSelectors;
  9. import springfox.documentation.service.ApiInfo;
  10. import springfox.documentation.service.Contact;
  11. import springfox.documentation.spi.DocumentationType;
  12. import springfox.documentation.spring.web.plugins.Docket;
  13. import springfox.documentation.swagger2.annotations.EnableSwagger2;
  14.  
  15. @Configuration
  16. @EnableSwagger2
  17. public class Swagger2 {
  18. //swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
  19. @Bean
  20. public Docket createRestApi() {
  21. return new Docket(DocumentationType.SWAGGER_2)
  22. .apiInfo(apiInfo())
  23. .select()
  24. //为当前包路径
  25. .apis(RequestHandlerSelectors.basePackage("com.taiji.demo.controller"))
  26. .paths(PathSelectors.any())
  27. .build();
  28. }
  29. //构建 api文档的详细信息函数,注意这里的注解引用的是哪个
  30. private ApiInfo apiInfo() {
  31. return new ApiInfoBuilder()
  32. //页面标题
  33. .title("系统API接口")
  34.  
  35. //创建人
  36. .contact(new Contact("zhangyg", "www.redxun.com", "zhangyg@redxun.cn"))
  37. //版本号
  38. .version("1.0")
  39. //描述
  40. .description("系统API接口")
  41. .build();
  42. }
  43.  
  44. }

3.编辑java 文件

  1. package com.taiji.demo.controller;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.web.bind.annotation.PathVariable;
  5. import org.springframework.web.bind.annotation.RequestBody;
  6. import org.springframework.web.bind.annotation.RequestMapping;
  7. import org.springframework.web.bind.annotation.RequestMethod;
  8. import org.springframework.web.bind.annotation.RestController;
  9.  
  10. import com.alibaba.fastjson.JSONObject;
  11. import com.taiji.core.util.IdUtil;
  12. import com.taiji.demo.model.SaleOrder;
  13. import com.taiji.demo.service.SaleOrderService;
  14.  
  15. import io.swagger.annotations.Api;
  16. import io.swagger.annotations.ApiImplicitParam;
  17. import io.swagger.annotations.ApiImplicitParams;
  18. import io.swagger.annotations.ApiOperation;
  19. import io.swagger.annotations.ApiParam;
  20. import io.swagger.annotations.ApiResponse;
  21. import io.swagger.annotations.ApiResponses;
  22.  
  23. @RestController
  24. @Api(value="销售订单API接口")
  25. public class SaleOrderController {
  26.  
  27. @Autowired
  28. private SaleOrderService saleOrderService;
  29.  
  30. @ApiOperation(value="添加订单",notes="添加订单描述")
  31. @RequestMapping(value="/add",method={RequestMethod.POST,RequestMethod.GET})
  32. public void add(@ApiParam(value = "用户数据",
  33. required = true,
  34. type="JSONObject",
  35. example="{\"name\":\"A\",\"userId\":\"B\",\"total\":\"100\"}") @RequestBody JSONObject json){
  36. SaleOrder order=new SaleOrder();
  37. order.setId(IdUtil.getId());
  38. order.setName(json.getString("name"));
  39. order.setCreator(json.getString("userId"));
  40. order.setTotal(json.getDouble("total"));
  41. saleOrderService.create(order);
  42. }
  43.  
  44. @ApiOperation(value="根据ID查看明细",notes="根据ID查看明细")
  45. @ApiImplicitParams(value={
  46. @ApiImplicitParam(name="id",value="订单ID",required=true,dataType="String")
  47. })
  48. @RequestMapping(value="/get/{id}",method=RequestMethod.GET)
  49. public SaleOrder get(@PathVariable(value="id") String id){
  50. SaleOrder order= saleOrderService.get(id);
  51. return order;
  52. }
  53.  
  54. @RequestMapping(value="/page/{page}",method=RequestMethod.GET)
  55. @ApiResponses({
  56. @ApiResponse(response=JSONObject.class, code = 200, message = "订单列表")
  57. })
  58. public JSONObject page(@PathVariable(value="page") int page){
  59. JSONObject order= saleOrderService.getAll(page,10);
  60. return order;
  61. }
  62. }

4.访问平台列表

http://localhost:8000/demo/swagger-ui.html#/sale45order45controller

5.在线调试接口

输入好参数后,点击try it out 按钮,可以对代码进行调试。

springboot swagger 整合的更多相关文章

  1. SpringBoot+Swagger整合API

    SpringBoot+Swagger整合API Swagger:整合规范的api,有界面的操作,测试 1.在pom.xml加入swagger依赖 <!--整合Swagger2配置类--> ...

  2. SpringBoot+Swagger整合

    0.引言及注意事项 Swagger是一个接口文档工具,依照Swagger可以0配置开发接口.不过要注意,Swagger是基于SpringBoot1.47版本开发的,而SpringBoot现在基本都是是 ...

  3. SpringBoot+Swagger2 整合

    SpringBoot+Swagger2四步整合 第一步:添加相关依赖 <parent> <groupId>org.springframework.boot</groupI ...

  4. springboot+jpa+mysql+swagger整合

    Springboot+jpa+MySQL+swagger整合 创建一个springboot web项目 <dependencies> <dependency>      < ...

  5. SpringBoot与Swagger整合

    1 SpringBoot与Swagger整合https://blog.csdn.net/jamieblue1/article/details/99847744 2 Swagger详解(SpringBo ...

  6. springboot+swagger接口文档企业实践(上)

    目录 1.引言 2.swagger简介 2.1 swagger 介绍 2.2 springfox.swagger与springboot 3. 使用springboot+swagger构建接口文档 3. ...

  7. SpringBoot 同时整合thymeleaf html、vue html和jsp

    问题描述 SpringBoot如何同时访问html和jsp SpringBoot访问html页面可以,访问jsp页面报错 SpringBoot如何同时整合thymeleaf html.vue html ...

  8. SpringBoot+AOP整合

    SpringBoot+AOP整合 https://blog.csdn.net/lmb55/article/details/82470388 https://www.cnblogs.com/onlyma ...

  9. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

随机推荐

  1. [SQL]T-Sql 递归查询(给定节点查所有父节点、所有子节点的方法)

    T-Sql 递归查询(给定节点查所有父节点.所有子节点的方法)   -- 查找所有父节点with tab as( select Type_Id,ParentId,Type_Name from Sys_ ...

  2. go api json 输出尝试

    package main import ( "fmt" "net/http" //"net/url" "github.com/dr ...

  3. oracle 序列sequence

    查询所有的序列: select 'create sequence '||sequence_name|| ' minvalue '||min_value|| ' maxvalue '||max_valu ...

  4. junit 基础使用

    junit百度百科: JUnit是一个Java语言的单元测试框架.它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个. JU ...

  5. scrollview嵌套recyclerview显示不全现象

    只需在recyclerview的外层加入一个父布局就好了 <RelativeLayout android:layout_width="match_parent" androi ...

  6. orcal - 单行函数

    虚拟表:dual 转大写 select UPPER('hellow') from dual; 转小写 select lower(ename) from emp; cmd 输入数据 select * f ...

  7. Docker 安装 oracle 并使用 navicat 实现外部连接

    1,拉取 docker 镜像:docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 1.1 , 该镜像由阿里云提供,比较大, ...

  8. 深度学习原理与框架-Tensorflow卷积神经网络-cifar10图片分类(代码) 1.tf.nn.lrn(局部响应归一化操作) 2.random.sample(在列表中随机选值) 3.tf.one_hot(对标签进行one_hot编码)

    1.tf.nn.lrn(pool_h1, 4, bias=1.0, alpha=0.001/9.0, beta=0.75) # 局部响应归一化,使用相同位置的前后的filter进行响应归一化操作 参数 ...

  9. JavaScript: RegExp check UserName

    Function : We can use regular expressions to check user input data formats. Homework: Check user inp ...

  10. 一个free异常引发的异常

    有同事反馈说自己的线程不工作,查看堆栈发现其打印如下: # # # # # # # # , info= # <signal handler called> # # # # # # # , ...