如何模拟Wiremock中屏蔽卡号的端点



我们有一个屏蔽卡号的端点。我想用Wiremock模拟这个端点。由于它适用于多个卡号,所以我不可能为每张卡准备单独的模拟文件。如何使用单个文件模拟此端点?发送的请求和返回的对此请求的响应如下:

Request:
{
"cardNumber": "1234561234561234"
}
Response:
{
"maskedCard": "123456******1234"
}

我准备了一个Wiremock文件,它只适用于1个卡号:

{
"request": {
"method": "POST",
"url": "/maskedCard",
"bodyPatterns": [
{
"matchesJsonPath": "[?(@.cardNumber == '1234561234561234')]"
}
]
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"jsonBody": {
"maskedCard": "123456******1234"
}
}
}

如何使此功能适用于所有传入的卡号?

如果附加到请求的cardNumber无关紧要,那么我只会排除bodyPatterns进行匹配。

{
"request": {
"method": "POST",
"url": "/maskedCard"
}

如果你需要接受请求正文中的卡号并屏蔽它,我不知道有什么现成的解决方案可以为你做到这一点。相反,您必须编写一个响应转换器来将未屏蔽的cardNumber更改为屏蔽的cardNumber。类似。。。

public class MaskCardNumbers extends ResponseTransformer {
public String getName() {
return "MaskCardNumbers";
}
@Override
public Response transform(Request request, Response response, FileSource files, Parameters parameters) {
Pattern pattern = Pattern.compile("/maskedCard");
Matcher matcher = pattern.matcher(request.getUrl());
if(matcher.matches()) { 
// Logic to extract cardNumber - my library of choice is JsonSimple
JSONObject responseBody = (JSONObject) parser.parse(response.getBodyAsString());
String cardNumber = responseBody.get("cardNumber").toString();

// Logic to replace cardNumber
String maskedCard = "";
for (int i = 0; i < cardNumber.length(); i++) {
if (i < 6 || i > 11) {
maskedCard += cardNumber.charAt(i);
} else {
maskedCard += "*";
}
}
// Create response JSON Object
JSONObject responseObject = new JSONObject();
responseObject.put("cardNumber", maskedCard)
// Return responseObject
return Response.Builder.like(response).but().body(responseBody.toJSONString()).build();
}
}
}       

然后,您需要确保WireMock在连接变压器的情况下启动。最后,您的映射看起来像:

{
"request": {
"method": "POST",
"url": "/maskedCard"
},
"response": {
"status": 200,
"headers": {
"Content-Type": "application/json"
},
"jsonBody": {
"maskedCard": "123456******1234"
}
}
}

你可能需要考虑一些细节,但我认为这应该完成任务,或者至少让你大部分时间都能完成。

相关内容

  • 没有找到相关文章

最新更新