WireMock.Net icon indicating copy to clipboard operation
WireMock.Net copied to clipboard

How to get matched mapping by HttpRequest or HttpRequestMessage

Open marspox opened this issue 3 years ago • 3 comments

Hello, I would like to know wheather is it possible to get mapping by HttpRequest or HttpRequestMessage. Let's say that I have HttpRequest/HttpRequestMessage object then based on its values I would like to find out which mapping will be matched for that request.

marspox avatar Jul 12 '22 09:07 marspox

@marspox It's not possible yet to analyze a HttpRequest or HttpRequestMessage to see which mapping will be matched.

The only way now it is to send the HttpRequest or HttpRequestMessage to WireMock.Net and see if the response is valid and you can verify the matched mappings.

StefH avatar Jul 12 '22 10:07 StefH

I see, but after sending HttpRequest I still don't know which mapping has been applied to get response. I'm writing a tool which uses WireMock.Net with proxy recording. After sending a request, mapping is automatically created if missing, I would like to get mapping or its guid in order to cache new mappings. It would be great to have such metod in public partial class WireMockServer : IWireMockServer with reusing inside public (MappingMatcherResult Match, MappingMatcherResult Partial) FindBestMatch(RequestMessage request)

marspox avatar Jul 12 '22 10:07 marspox

I have the same difficulty, I wanted to compare the map described with the map that was actually registered to locate the error but nothing is possible. I analyze the "LogEntries" but nothing.

MychellSantos avatar Jul 27 '22 15:07 MychellSantos

@marspox & @MychellSantos

A possible solution would be that you can use response templating to return the GUID from the matched mapping as a header for example.

So

"Response" : {
  "Headers" : [
    "Matched-Mapping-Guid": "{{mapping.guid}}"
  ],
  "UseTransformer" : true
}

Would that be ok?

StefH avatar Aug 25 '22 06:08 StefH

@marspox & @MychellSantos

A preview version 1.5.4-ci-16400 supports this. Can you please test?

(how to use preview : https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions)

StefH avatar Aug 25 '22 09:08 StefH

Hi StefH, thanks, for adding this feature

marspox avatar Aug 25 '22 09:08 marspox

@MychellSantos Did you also have time to review / test ?

StefH avatar Aug 27 '22 07:08 StefH

@marspox and @MychellSantos Did you also have time to review / test ?

StefH avatar Sep 01 '22 05:09 StefH

@marspox and @MychellSantos : The PR is merged to master, a new NuGet will be released soon.

StefH avatar Sep 03 '22 06:09 StefH

I do not activate time to test, I will evaluate the next package...

MychellSantos avatar Oct 21 '22 05:10 MychellSantos