Wiremock ile mocking yaparken bazen URL ile gelen degiskenleri kullanmak isteyebiliriz.
bir örnek URL düsünelim
https://ornek.com/ulke_tespiti/TR
Aslinda anlasilacagi gibi ülkeyi Türkiye olarak ayarliyoruz. Bu durumda stub imiz asagida ki gibi olmalidir.
{
"request": {
"method": "GET",
"urlPathTemplate": "/ulke_tespiti/{UlkeId}"
},
"response": {
"status": 200,
"headers": {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "*",
"Access-Control-Allow-Headers": "*"
},
"body": "{{#if (eq request.pathSegments.[1] 'DE')}}{\n \"UlkeId\": \"DE\",\n \"land\": \"Deutschland\"\n}{{else if (eq request.pathSegments.[1] 'AF')}}{\n \"UlkeId\": \"AF\",\n \"land\": \"Afghanistan\"\n}{{else if (eq request.pathSegments.[1] 'TR')}}{\n \"UlkeId\": \"TR\",\n \"land\": \"Tuerkiye\"\n}{{else}}{\n \"UlkeId\": \"Unknown\",\n \"land\": \"Unknown\"\n }{{/if}}",
"transformers": ["response-template"]
}
}
Simdi burada 3 önemli nokta var.
- “urlPathTemplate”: “/ulke_tespiti/{UlkeId}”
Bu sekilde sabit url degilde templated oldugunu belirtiyoruz. - “transformers”: [“response-template”]
Burada template in transform edilmesi gerektigini belirtiyoruz. - {{#if (eq request.pathSegments.[1] ‘DE’)}}{\n \”UlkeId\”: \”DE\”,\n \”land\”: \”Deutschland\”\n}{{else if (eq request.pathSegments.[1] ‘AF’)}}{\n \”UlkeId\”: \”AF\”,\n \”land\”: \”Afghanistan\”\n}{{else if (eq request.pathSegments.[1] ‘TR’)}}{\n \”UlkeId\”: \”TR\”,\n \”land\”: \”Tuerkiye\”\n}{{else}}{\n \”UlkeId\”: \”Unknown\”,\n \”land\”: \”Unknown\”\n }{{/if}}”
Burada bir if-if else-else yapisi mevcut.inceleyelim.
if (eq request.pathSegments.[1] ‘DE’) : eger path segmentinin 1nci elemani DE ise. response olarak {\n \”UlkeId\”: \”DE\”,\n \”land\”: \”Deutschland\”\n} gönder.
Yapisi
{{#if (Condition )}} {do}
{{else if (Condition)}}{do}
{{else}}{do }
{{/if}} –> end if block