05/03/2025

Wiremock ile degisken kullanimi

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.

  1. “urlPathTemplate”: “/ulke_tespiti/{UlkeId}”
    Bu sekilde sabit url degilde templated oldugunu belirtiyoruz.
  2. “transformers”: [“response-template”]
    Burada template in transform edilmesi gerektigini belirtiyoruz.
  3. {{#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