Risposte fittizie
Per definire risposte fittizie, creare un file denominato mocks.json
nella directory di lavoro corrente. Questo file consente di definire un set specifico di simulazioni per ogni progetto con cui si lavora. Il file contiene un oggetto con una mocks
matrice contenente oggetti fittizi .
Suggerimento
Anziché creare manualmente il file fittizio, è possibile usare per MockGeneratorPlugin
generare il file fittizio in base alle richieste intercettate.
La configurazione seguente illustra due risposte fittizie per il recupero di informazioni sull'utente corrente. Quando si richiedono informazioni sull'utente corrente, il proxy risponde con una risposta fittizia. Quando richiedi le informazioni sulla foto dell'utente, il proxy restituisce un codice di stato 404.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
"mocks": [
{
"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"
}
]
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Le simulazioni vengono confrontate nell'ordine in cui sono definite nel mocks.json
file. Se si definiscono più risposte con lo stesso URL e metodo, viene usata la prima risposta corrispondente.
Quando si usa la configurazione seguente, il proxy risponde a tutte le GET
richieste a https://graph.microsoft.com/v1.0/me/photo
con 500 Internal Server Error
.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/mockresponseplugin.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 500
}
},
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me/photo",
"method": "GET"
},
"response": {
"statusCode": 404
}
}
]
}
Il proxy supporta l'uso di caratteri jolly nella proprietà URL. È possibile usare il carattere asterisco (*
) per trovare le corrispondenze con qualsiasi serie di caratteri nell'URL.
Quando si usa la configurazione seguente, il proxy risponde a tutte le richieste per ottenere il profilo di qualsiasi utente con la stessa risposta.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*"
},
"response": {
"body": {
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users/$entity",
"businessPhones": ["+1 425 555 0109"],
"displayName": "Adele Vance",
"givenName": "Adele",
"jobTitle": "Product Marketing Manager",
"mail": "AdeleV@M365x214355.onmicrosoft.com",
"mobilePhone": null,
"officeLocation": "18/2111",
"preferredLanguage": "en-US",
"surname": "Vance",
"userPrincipalName": "AdeleV@M365x214355.onmicrosoft.com",
"id": "87d349ed-44d7-43e1-9a83-5f2406dee5bd"
}
}
}
Quando si usa la configurazione seguente, il proxy restituisce la stessa immagine dal disco quando si richiede di ottenere il file binario della foto di un utente.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
Quando si usa la configurazione seguente, il proxy restituisce la stessa risposta quando si richiede di ottenere il profilo dell'utente corrente con qualsiasi parametro della stringa di query.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me?*"
},
"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"
}
}
},
Per mantenere pulito e organizzato il file fittizio, è possibile archiviare il contenuto della risposta in un file separato e farvi riferimento nel file fittizio. Per indicare a Dev Proxy di caricare il corpo della risposta fittizia da un file, impostare la body
proprietà su @
seguita dal percorso del file relativo al file fittizio.
Ad esempio, la configurazione della risposta fittizia seguente indica a Dev Proxy di rispondere a qualsiasi richiesta a https://graph.microsoft.com/v1.0/me
con il contenuto del response.json
file che si trova nella stessa cartella del file fittizio.
{
"request": {
"url": "https://graph.microsoft.com/v1.0/me",
"method": "GET"
},
"response": {
"body": "@response.json",
"headers": [
{
"name": "content-type",
"value": "application/json; odata.metadata=minimal"
}
]
}
}
L'uso di @
-token funziona con file di testo e binari.
Dev Proxy supporta risposte fittizie inviate in richieste batch a Microsoft Graph.
Non sono previsti requisiti speciali per l'inclusione di risposte alle richieste batch nei file fittizi, ma se una richiesta non corrisponde a una risposta fittizia, viene restituita una 502 Bad Gateway
risposta.
Dev Proxy supporta la generazione di un errore quando il proxy intercetta una richiesta non rilevata. La possibilità di interrompere le richieste non rilevate è utile per identificare le richieste perse nel file fittizio.
Per abilitare questa funzionalità, aggiungere e abilitare l'impostazione blockUnmockedRequests
su MockResponsePlugin config sezione nel file devproxyrc .
{
"mocksPlugin": {
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Quando viene intercettata una richiesta non rilevata, viene restituita una 502 Bad Gateway
risposta.
Altre informazioni su MockResponsePlugin.
Vedere anche gli esempi correlati di Dev Proxy:
Feedback su Dev Proxy
Dev Proxy è un progetto di open source. Selezionare un collegamento per fornire feedback: