Aracılığıyla paylaş


MockResponsePlugin

Yanıtların simülasyonunu oluşturur.

GitHub API'sine yönelik bir istek için yanıtı taklit eden Dev Proxy ile komut isteminin ekran görüntüsü.

Eklenti örneği tanımı

{
  "name": "MockResponsePlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "mocksPlugin"
}

Yapılandırma örneği

{
  "mocksPlugin": {
    "mocksFile": "mocks.json"
  }
}

Yapılandırma özellikleri

Özellik Açıklama Default
mocksFile Sahte yanıtlar içeren dosyanın yolu mocks.json
blockUnmockedRequests Sahte olmayan istekler için yanıt döndür 502 Bad Gateway false

Komut satırı seçenekleri

Ad Açıklama Default
-n, --no-mocks Sahte istekleri yüklemeyi devre dışı bırakma false
--mocks-file Sahte yanıtlar içeren dosyanın yolu -

Sahte dosya örnekleri

Aşağıda sahte nesnelere örnekler verilmiştir.

Gövde ile yanıt verme

200 Tamam yanıtı ve bir JSON gövdesi ile bir isteğe yanıt.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me",
    "method": "GET"
  },
  "response": {
    "body": {
      "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
      "businessPhones": ["+1 412 555 0109"],
      "displayName": "Megan Bowen",
      "givenName": "Megan",
      "jobTitle": "Auditor",
      "mail": "MeganB@M365x214355.onmicrosoft.com",
      "mobilePhone": null,
      "officeLocation": "12/1110",
      "preferredLanguage": "en-US",
      "surname": "Bowen",
      "userPrincipalName": "MeganB@M365x214355.onmicrosoft.com",
      "id": "48d31887-5fad-4d73-a9f5-3c356e68a038"
    },
    "headers": [
      {
        "name": "content-type",
        "value": "application/json; odata.metadata=minimal"
      }
    ]
  }
}

Hatayla yanıt verme

Bir isteğe 404 Bulunamadı yanıtıyla yanıt verin.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/me/photo",
    "method": "GET"
  },
  "response": {
    "statusCode": 404
  }
}

İkili verilerle yanıt verme

Disk üzerindeki bir dosyadan yüklenen ikili görüntüyle bir isteğe yanıt verin.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/users/*/photo/$value",
    "method": "GET"
  },
  "response": {
    "body": "@picture.jpg",
    "headers": [
      {
        "name": "content-type",
        "value": "image/jpeg"
      }
    ]
  }
}

İstek üzerine nth yanıt verme

bir isteği yalnızca ikinci kez çağrıldıktan sonra yanıtlayın.

{
  "request": {
    "url": "https://graph.microsoft.com/v1.0/external/connections/*/operations/*",
    "method": "GET",
    "nth": 2
  },
  "response": {
    "statusCode": 200,
    "body": {
      "id": "1.neu.0278337E599FC8DBF5607ED12CF463E4.6410CCF8F6DB8758539FB58EB56BF8DC",
      "status": "completed",
      "error": null
    }
  }
}

İstek gövdesiyle eşleşen yanıt

Gövdede belirli bir dize içeren bir isteği yanıtlar.

{
  "request": {
    "url": "https://login.microsoftonline.com/fa15d692-e9c7-4460-a743-29f29522229/oauth2/v2.0/token",
    "method": "POST",
    "bodyFragment": "scope=https%3A%2F%2Fapi.contoso.com%2FDocuments.Read"
  },
  "response": {
    "headers": [
      {
        "name": "Content-Type",
        "value": "application/json; charset=utf-8"
      }
    ],
    "body": {
      "token_type": "Bearer",
      "expires_in": 3599,
      "ext_expires_in": 3599,
      "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSU..."
    }
  }
}

Sahte dosya özellikleri

Özellik Açıklama Gerekli
request Yanıt vermek için isteği tanımlayan request nesnesi evet
response Döndürülecek yanıtı tanımlayan yanıt nesnesi evet

İstek nesnesi

Her istek aşağıdaki özelliklere sahiptir:

Özellik Açıklama Gerekli Varsayılan değer Örnek değer
url Yanıt vermek için API uç noktasının mutlak URL'si evet https://jsonplaceholder.typicode.com/posts
method İsteği ile eşleştirmek için kullanılan HTTP fiili url hayır GET GET
nth Proxy'nin yalnızca isteğin n. kez araya girilmesinden sonra yanıt vermesi gerektiğini belirler hayır 2
bodyFragment İstek gövdesinde bulunması gereken bir dize hayır foo

Açıklamalar

URL'deki herhangi bir karakter serisini url eşleştirmek istiyorsanız özelliğinde yıldız işareti (* ) kullanın. Örneğin, https://jsonplaceholder.typicode.com/* ve https://jsonplaceholder.typicode.com/commentsile eşleşirhttps://jsonplaceholder.typicode.com/posts. Çalışma zamanında, Geliştirme Proxy'si her * bir öğesini normal ifadeye .*dönüştürür.

Sahteleri tanımlarken, önce en özel sahteleri yerleştirin. Örneğin, biri için, diğeri https://jsonplaceholder.typicode.com/*için https://jsonplaceholder.typicode.com/posts olmak üzere iki sahteniz varsa, ilk sahteyi önce yerleştirin. Aksi takdirde, Geliştirme Proxy'si ilk olarak ikinci sahte ile eşleşir ve tüm istekler için https://jsonplaceholder.typicode.com/* yanıtı döndürür.

Aynı istek URL'sine nth farklı bir göndermeniz gerekiyorsa özelliğini kullanın. Örneğin, uzun süre çalışan bir işlemin benzetimini yapmak için bunu kullanın. API'yi ilk kez çağırdığınızda, ileti içeren bir inprogress yanıt döndürür. API'yi ikinci kez çağırdığınızda, iletiyle birlikte completed bir yanıt döndürür. Özelliği hakkında nth daha fazla bilgi için bkz . Sahte n. istek.

bodyFragment özelliğini kullanarak istekleri gövde içeriğine göre eşleştirebilirsiniz. Örneğin, gövdedeki dizeyi foo içeren istekleri eşleştirmek istiyorsanız özelliğini olarak fooayarlayınbodyFragment. Geliştirme Proxy'si yalnızca dışındaki GETistekler için kullanırbodyFragment.

Yanıt nesnesi

Her yanıt aşağıdaki özelliklere sahiptir:

Özellik Açıklama Gerekli Varsayılan değer Örnek değer
body İstek yanıtı olarak gönderilecek gövde hayır empty { "foo": "bar" }
statusCode Yanıt HTTP durum kodu hayır 200 404
headers Yanıta eklenecek üst bilgi dizisi hayır empty [{ name: "content-type", "value": "application/json" }]

Açıklamalar

İkili veri döndürmek istiyorsanız, özelliğini sahte dosyaya göre dosya yolu ile @ başlayan bir dize değeri olarak ayarlayınbody. Örneğin, @picture.jpg sahte dosyayla picture.jpg aynı dizinde dosyada depolanan görüntüyü döndürür.