Documentation / dotnet / Request-Matching
:one: Request Matching
WireMock.Net supports matching of requests to stubs and verification queries using the following parts:
- Path
- URL
- HTTP Method
- Query parameters
- Headers
- Cookies
- Request Body
Generic information on matchers:
Most matchers have 2 extra properties: - IgnoreCase = define that the matcher should match ignoring the case - RejectOnMatch = define that when the matcher does match successfully, this should be counted as a invalid (non-matching) match
Example Matchings
Path
C# example
JSON example
JSON
{
"Request": {
"Path": {
"Matchers": [
{
"Name": "WildcardMatcher",
"Pattern": "/path",
"IgnoreCase": true
}
]
}
}
}
````
### Url
#### C# example
``` c#
server
.Given(Request
.Create()
.WithUrl("https://localhost/test")
JSON example
JSON
{
"Request": {
"Url": {
"Matchers": [
{
"Name": "RegexMatcher",
"Pattern": "/clients[?]",
"IgnoreCase": true
}
]
}
}
}
````
### Query Parameters
#### C# example
``` c#
server
.Given(Request
.Create()
.WithParam("search", "abc")
JSON example
JSON
{
"Request": {
"Params": [
{
"Name": "search",
"Matchers": [
{
"Name": "ExactMatcher",
"Pattern": "abc"
}
]
}
]
}
}
Headers
C
JSON
JSON
{
"Request": {
"Headers": [
{
"Name": "api-key",
"Matchers": [
{
"Name": "WildcardMatcher",
"Pattern": "abc*"
"IgnoreCase": true
}
]
}
]
}
}
Note that when you want to match on a missing header, you need to use this mapping:
JSON
This means that when the header-key {
"Request": {
"Headers": [
{
"Name": "api-key",
"IgnoreCase": true,
"RejectOnMatch": true
}
]
}
api-key (ignoring the casing) is missing the header mapping will match because RejectOnMatch is true.
:two: Matchers
Content moved to Request Matchers.