一、使用swagger2生成接口文档

  1. 依赖

    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
    </dependency>
    <!-- swagger的bootstrap的美化界面 -->
    <dependency> 
      <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
    </dependency>
  2. 在springboot的启动类上加@EnableSwagger2注解
  3. 在controller的接口上加@ApiOperation(value = "用户查询服务")注解表明接口的作用。

swagger2中常用注解:

@Api():用在请求的类上,表示对类的说明,也代表了这个类是swagger2的资源

   参数:tags:说明该类的作用,参数是个数组,可以填多个。
      value="该参数没什么意义,在UI界面上不显示,所以不用配置"
      description = "用户基本信息操作"

@ApiOperation():用于方法,表示一个http请求访问该方法的操作

参数:value="方法的用途和作用"
   notes="方法的注意事项和备注"
   tags:说明该方法的作用,参数是个数组,可以填多个。
   格式:tags={"作用1","作用2"}
   (在这里建议不使用这个参数,会使界面看上去有点乱,前两个常用)

@ApiModel():用于响应实体类上,用于说明实体作用

参数:description="描述实体的作用"  

@ApiModelProperty:用在属性上,描述实体类的属性

参数:value="用户名"  描述参数的意义
   name="name" 参数的变量名
   required=true 参数是否必选

@ApiImplicitParams:用在请求的方法上,包含多@ApiImplicitParam

@ApiImplicitParam:用于方法,表示单独的请求参数

参数:name="参数ming" 
   value="参数说明"
   dataType="数据类型"
   paramType="query" 表示参数放在哪里
    · header 请求参数的获取:@RequestHeader
· query 请求参数的获取:@RequestParam
· path(用于restful接口) 请求参数的获取:@PathVariable
· body(不常用)
· form(不常用)
defaultValue="参数的默认值"
required="true" 表示参数是否必须传

@ApiParam():用于方法,参数,字段说明 表示对参数的要求和说明

参数:name="参数名称"
   value="参数的简要说明"
   defaultValue="参数默认值"
   required="true" 表示属性是否必填,默认为false

@ApiResponses:用于请求的方法上,根据响应码表示不同响应,一个@ApiResponses包含多个@ApiResponse

@ApiResponse:用在请求的方法上,表示不同的响应

参数:code="404"    表示响应码(int型),可自定义
   message="状态码对应的响应信息"

@ApiIgnore():用于类或者方法上,不被显示在页面上
@Profile({"dev", "test"}):用于配置类上,表示只对开发和测试环境有用

二、使用WireMock伪造REST服务

WireMock 是一个灵活的库用于 Web 服务测试,和其他测试工具不同的是,WireMock 创建一个实际的 HTTP服务器来运行你的 Web 服务以方便测试。

它支持 HTTP 响应存根、请求验证、代理/拦截、记录和回放, 并且可以在单元测试下使用或者部署到测试环境。

使用场景:

  • 测试移动应用依赖于第三方REST APIs
  • 创建快速原型的APIs
  • 注入否则难于模拟第三方服务中的错误
  • 任何单元测试的代码依赖于web服务的
  1. 官网: http://wiremock.org/

    下载可执行jar:http://wiremock.org/docs/running-standalone/

  2. java-jar启动jar包   java -jar wiremock-standalone-2.18.0.jar --port 3298
  3. 添加依赖
    <dependency>
    <groupId>com.github.tomakehurst</groupId>
    <artifactId>wiremock</artifactId>
    <version>1.53</version>
    <classifier>standalone</classifier>
    </dependency>
    <dependency>
    <groupId>org.testng</groupId>
    <artifactId>testng</artifactId>
    <version>6.8</version>
    </dependency>
  4. 在resources中建立文件夹建立txt文件,存放返回的json数据
  5. 添加设置
    public static void main(String[] args) throws IOException {
    WireMock.configureFor("127.0.0.1",3298);//设置路径和端口
    WireMock. removeAllMappings();//清空所有设置 mock("/test/01", "01");
    mock("/test/02", "02");
    } private static void mock(String url, String file) throws IOException {
    ClassPathResource resource = new ClassPathResource("response/" + file + ".txt");
    String content = StringUtils.join(FileUtils.readLines(resource.getFile(), "UTF-8").toArray(), "\n");//返回结果
    stubFor(get(urlPathEqualTo(url)).willReturn(aResponse().withBody(content).withStatus(200)));//get或post请求返回值
    }

前后端分离中,使用swagger2和WireMock提高开发速度的更多相关文章

  1. nodejs--JWT 在前后端分离中的应用与实践

    nodejs--JWT 在前后端分离中的应用与实践 http://www.cnblogs.com/lidongyue/p/5269695.html

  2. 前后端分离中的无痛刷新token机制

    今天我们来说一说前后端分离中的无痛刷新token机制 博主先来分享一波福利,最近挖到的宝藏,刚开始学Java的同学看 https://www.bilibili.com/video/BV1Rx41187 ...

  3. 前后端分离中,Gulp实现头尾等公共页面的复用

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  4. JWT 在前后端分离中的应用与实践

    关于前后端分离 前后端分离是一个很有趣的议题,它不仅仅是指前后端工程师之间的相互独立的合作分工方式,更是前后端之间开发模式与交互模式的模块化.解耦化.计算机世界的经验告诉我们,对于复杂的事物,模块化总 ...

  5. 前后端分离中,gulp实现头尾等公共页面的复用 前言

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

  6. shiro vue 前后端分离中模拟登录遇到的坑

    系统采用jeeplus框架(ssm+redis+shiro+mongodb+redis),默认是了JSP未做前后端分离,由于业务需要已经多终端使用的需求(H5.小程序等),需要实现前后端分离.但是由于 ...

  7. Vue+SpringBoot前后端分离中的跨域问题

    在前后端分离开发中,需要前端调用后端api并进行内容显示,如果前后端开发都在一台主机上,则会由于浏览器的同源策略限制,出现跨域问题(协议.域名.端口号不同等),导致不能正常调用api接口,给开发带来不 ...

  8. Springboot前后端分离中,后端拦截器拦截后,前端没有对应的返回码可以判断

    项目登录流程如下 用户进入前端登录界面,输入账号密码等,输入完成之后前端发送请求到后端(拦截器不会拦截登录请求),后端验证账号密码等成功之后生成Token并存储到数据库,数据库中包含该Token过期时 ...

  9. web 部署专题(九):Nginx 前后端分离中csrf_token 认证的实现

    1. 思路 参考:https://stackoverflow.com/questions/20826201/simple-csrf-protection-using-nginx-alone?r=Sea ...

随机推荐

  1. python 虚拟环境安装

    windows虚拟环境的搭建 安装 # 建议使用pip3安装到python3环境下 pip3 install virtualenv pip3 install virtualenvwrapper-win ...

  2. 痞子衡嵌入式:MCUBootUtility v2.4发布,轻松更换Flashloader文件

    -- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3.1)发布过去2个月了,这一次痞子衡为大家带来了版本升级v2.4.0,这个版本主要有一个非常重要的更新需要跟大家特别说 ...

  3. 【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息

    问题描述 在使用Azure App Service时候,我们有时候对 一些请求发生错误毫无头绪,能从错误代码中知道请求错误,但是更多的信息呢? 当我们需要更多的信息时候,通常有以下的一些方式来查找问题 ...

  4. Dubbo源码本地运行demo遇到的问题

    从github上拉下来的Dubbo源码,运行Dubbo项目的demo工程,报如下错误(Dubbo版本为2.7.6): Exception in thread "main" java ...

  5. CDH+Kylin三部曲之二:部署和设置

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. python机器学习实现K-近邻算法(KNN)

    机器学习 K-近邻算法(KNN) 关注公众号"轻松学编程"了解更多. 以下命令都是在浏览器中输入. cmd命令窗口输入:jupyter notebook 后打开浏览器输入网址htt ...

  7. learning to Estimate 3D Hand Pose from Single RGB Images论文理解

    持续更新...... 概括:以往很多论文借助深度信息将2D上升到3D,这篇论文则是想要用网络训练代替深度数据(设备成本比较高),提高他的泛性,诠释了只要合成数据集足够大和网络足够强,我就可以不用深度信 ...

  8. python爬虫10 b站爬取使用 selenium+ phantomJS

    但有时候 我们不想要让它打开浏览器去执行 能不能直接在代码里面运行呢 也就是说 有没有一个无形的浏览器呢 恩 phantomJS 就是 它是一个基于 WebKit 的浏览器引擎 可以做到无声无息的操作 ...

  9. Java实现酒店客房管理系统

    这篇文章主要为大家详细介绍了Java实现酒店客房管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了Java实现酒店客房管理系统的具体代码,供大家参考,具体内容如下 Log ...

  10. php获取快手视频id

    <?php $url = "http://www.gifshow.com/s/xxxxxx"; //初始化 $curl = curl_init(); //设置抓取的url c ...