动态生效响应规则

WireMock在启动的时候加载mapping下的响应规则,每次改动都需要重新启动WireMock,那如何动态生效响应规则呢?WireMock自身就提供的接口,就可以实现该功能。

通过接口查看响应规则

接口:http://localhost:9090/__admin/mappings

请求方式:Get

请求该接口就会返回已经定义的响应规则(mappings文件夹下)

重新加载Mapping定义

接口:http://localhost:9090/__admin/mappings/reset

请求方式:Post

实战

  1. 启动WireMock服务

    1
    jingdeMacBook-Pro:WireMock apple$ java -jar wiremock-jre8-standalone-2.27.0.jar --port 9090
  1. 请求接口:http://localhost:9090/api/book/abc

    image-20201012185640637

  2. 请求接口:http://localhost:9090/__admin/mappings,查看已定义的响应规则

    image-20201012190354018

  3. 在mappings目录下,修改该规则的响应返回体

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "request": {
    "method": "GET",
    "urlPattern": "/api/book/([a-z]*)"
    },
    "response": {
    "status": 200,
    "jsonBody": {"code":"00000","message":"OK","data":{"body":"Successful"}}
    }
    }
  1. 请求接口:http://localhost:9090/__admin/mappings/reset,重新加载已修改的响应规则

    image-20201012190537971

  2. 再次请求接口:http://localhost:9090/__admin/mappings和http://localhost:9090/api/book/abc

    image-20201012192227574

    image-20201012192255809