MockResponsePlugin
Simula le risposte.
Definizione dell'istanza del plug-in
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "mocksPlugin"
}
Esempio di configurazione
{
"mocksPlugin": {
"mocksFile": "mocks.json"
}
}
Proprietà di configurazione
Proprietà | Descrizione | Predefinito |
---|---|---|
mocksFile |
Percorso del file contenente risposte fittizie | mocks.json |
blockUnmockedRequests |
Risposta restituita 502 Bad Gateway per le richieste non fittizie |
false |
Opzioni della riga di comando
Nome | Descrizione | Predefinito |
---|---|---|
-n, --no-mocks |
Disabilitare il caricamento di richieste fittizie | false |
--mocks-file |
Percorso del file contenente risposte fittizie | - |
Esempi di file fittizi
Di seguito sono riportati esempi di oggetti fittizi.
Rispondere con il corpo
Risposta a una richiesta con una risposta 200 OK e un corpo JSON.
{
"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"
}
]
}
}
Rispondere con un errore
Rispondere a una richiesta con una risposta 404 Non trovato.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
Rispondere con dati binari
Rispondere a una richiesta con un'immagine binaria caricata da un file su disco.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value",
"method": "GET"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Rispondere su nth
richiesta
Rispondere a una richiesta solo dopo la seconda chiamata.
{
"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
}
}
}
Rispondere corrispondente al corpo della richiesta
Rispondere a una richiesta che contiene una stringa specifica nel corpo.
{
"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..."
}
}
}
Mocks file properties
Proprietà | Descrizione | Obbligatoria |
---|---|---|
request |
Oggetto Request che definisce la richiesta di risposta | Sì |
response |
Oggetto risposta che definisce la risposta da restituire | Sì |
Oggetto della richiesta
Ogni richiesta ha le proprietà seguenti:
Proprietà | Descrizione | Obbligatoria | Valore predefinito | Valore di esempio |
---|---|---|---|---|
url |
URL assoluto a un endpoint API a cui rispondere | sì | https://jsonplaceholder.typicode.com/posts |
|
method |
Verbo HTTP usato per trovare una corrispondenza con la richiesta url |
no | GET |
GET |
nth |
Determina che il proxy deve rispondere solo dopo l'intercettazione della richiesta per l'nesimo tempo | no | 2 |
|
bodyFragment |
Stringa che deve essere presente nel corpo della richiesta | no | foo |
Commenti
Usare l'asterisco (*
) nella url
proprietà se si desidera trovare una corrispondenza con qualsiasi serie di caratteri nell'URL. Ad esempio, https://jsonplaceholder.typicode.com/*
corrisponde https://jsonplaceholder.typicode.com/posts
a e https://jsonplaceholder.typicode.com/comments
. In fase di esecuzione Dev Proxy converte ogni *
oggetto in un'espressione .*
regolare .
Quando si definiscono simulazioni, posizionare prima i mock più specifici. Ad esempio, se si hanno due mock, uno per https://jsonplaceholder.typicode.com/posts
e uno per https://jsonplaceholder.typicode.com/*
, posizionare il primo fittizio per primo. In caso contrario, Dev Proxy corrisponde al secondo mock first e restituisce la risposta per https://jsonplaceholder.typicode.com/*
tutte le richieste.
Usare la nth
proprietà se è necessario inviare un valore diverso allo stesso URL della richiesta. Ad esempio, usarlo per simulare un'operazione a esecuzione prolungata. La prima volta che si chiama l'API, viene restituita una risposta con un inprogress
messaggio. La seconda volta che si chiama l'API, viene restituita una risposta con il completed
messaggio. Per altre informazioni sulla proprietà, vedere Mock nth request .For more information about the nth
property, see Mock nth request.
Usando la bodyFragment
proprietà , è possibile associare le richieste in base al contenuto del corpo. Ad esempio, se si desidera trovare una corrispondenza con le richieste che contengono la foo
stringa nel corpo, impostare la bodyFragment
proprietà su foo
. Dev Proxy usa bodyFragment
solo per le richieste diverse da GET
.
Oggetto della risposta
Ogni risposta ha le proprietà seguenti:
Proprietà | Descrizione | Obbligatoria | Valore predefinito | Valore di esempio |
---|---|---|---|---|
body |
Corpo da inviare come risposta alla richiesta | no | empty | { "foo": "bar" } |
statusCode |
Codice di stato HTTP della risposta | no | 200 |
404 |
headers |
Matrice di intestazioni da includere nella risposta | no | empty | [{ name: "content-type", "value": "application/json" }] |
Commenti
Se si desidera restituire dati binari, impostare la body
proprietà su un valore stringa che inizia con seguito @
dal percorso del file relativo al file fittizio. Ad esempio, @picture.jpg
restituisce l'immagine archiviata nel picture.jpg
file nella stessa directory del file fittizio.