Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Borravaló
Új proxyk? Megtudhatja , hogy mi a proxy, és hogyan használja a Dev Proxy az API-forgalom elfogására és módosítására.
Egy pillantással
Cél: Előre definiált API-válaszokat ad vissza a valódi API meghívása nélkül
Idő: 10 perc
Beépülő modulok:MockResponsePlugin
Előfeltételek:Fejlesztői proxy beállítása
Az API-k szimulálásának legegyszerűbb módja a Dev Proxy használata. Akár az előtérrendszert készíti, akár az API még nem áll készen, integrálnia kell a háttérrendszert egy külső szolgáltatással, vagy különböző válaszokkal szeretné tesztelni az alkalmazást, a Dev Proxy segíthet az API-válaszok szimulálásában. A Dev Proxy használatának nagyszerű módja, hogy nincs szükség az alkalmazáskód módosítására. Az alkalmazás által kezelt api-k utánzatválaszait definiálhatja, a Dev Proxy pedig elfogja a kéréseket, és válaszol a megadott szimulált válaszokra.
Az API-válaszok szimulálásához két dolgot kell elvégeznie:
- Hozzon létre egy fájlt a modellválaszokkal.
- Konfigurálja a fejlesztői proxyt a modellválaszok használatára.
Borravaló
A Visual Studio Code használata esetén érdemes lehet telepíteni a Dev Proxy Toolkit bővítményt. Jelentősen leegyszerűsíti a Dev Proxy konfigurációs fájljainak használatát.
Fájl létrehozása modellválaszokkal
A fejlesztői proxy az API-válaszokat a MockResponsePluginhasználatával szimulálja. A beépülő modul lehetővé teszi a modellválaszok egy készletének definiálását. A maketteket egy különálló fájlbandefiniálhatja. Az alábbi kódrészlet bemutat egy egyszerű mock választ egy GET kérésre https://jsonplaceholder.typicode.com/posts/1-hez.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://jsonplaceholder.typicode.com/posts/1",
"method": "GET"
},
"response": {
"statusCode": 200,
"body": {
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
"headers": [
{
"name": "Date",
"value": "Wed, 19 Feb 2025 09:03:37 GMT"
},
{
"name": "Content-Type",
"value": "application/json; charset=utf-8"
},
{
"name": "Content-Length",
"value": "292"
}
]
}
}
]
}
Borravaló
Ahelyett, hogy manuálisan hozza létre a mocks fájlt, a MockGeneratorPlugin használatával létrehozhatja a mocks fájlt az elfogott kérések alapján.
Rendezési sorrend
A fejlesztői proxy a mokkákat abban a sorrendben illeszti, amelyben a mokkafájlban definiálja őket. Ha több választ határoz meg ugyanazzal az URL-címmel és módszerrel, a Dev Proxy az első egyező választ használja.
A következő konfiguráció használatakor a proxy az GET kérésekre https://graph.microsoft.com/v1.0/me/photo-hez a 500 Internal Server Errorválaszt adja.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.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
}
}
]
}
Helyettesítő karakterek támogatása
A Dev Proxy támogatja a helyettesítő karakterek használatát az URL-tulajdonságban. A csillag karakterrel (*) az URL-címben szereplő karakterek tetszőleges sorozatának megfeleltethető.
Ha a következő konfigurációt használja, a Dev Proxy minden kérésre válaszol, hogy minden felhasználó profilját ugyanazzal a válaszsal kapja meg.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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"
}
}
}
]
}
A következő konfiguráció használatakor a Dev Proxy ugyanazt a lemezképet adja vissza, amikor egy felhasználó fényképének bináris fájlját kéri le.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"request": {
"url": "https://graph.microsoft.com/v1.0/users/*/photo/$value"
},
"response": {
"body": "@picture.jpg",
"headers": [
{
"name": "content-type",
"value": "image/jpeg"
}
]
}
}
]
}
A következő konfiguráció használatakor a Dev Proxy ugyanazt a választ adja vissza, amikor az aktuális felhasználó profiljának lekérdezési sztringparaméterrel való lekérését kéri.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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"
}
}
}
]
}
Válasz fájl tartalmával
A modellfájl tisztán és rendszerezetten tartásához a válasz tartalmát egy külön fájlban tárolhatja, és hivatkozhat rá a modellfájlban. A Dev Proxy utasítása érdekében, hogy az állszimulációs választörzset fájlból töltse be, állítsa be a body tulajdonságot @-re, majd adja meg a fájlhoz viszonyított elérési útvonalat a mock fájlhoz viszonyítva.
A következő modell válaszkonfigurációja például arra utasítja a Dev Proxyt, hogy válaszoljon a https://graph.microsoft.com/v1.0/me kérésekre a response.json fájl tartalmával, amely ugyanabban a mappában található, mint a makettfájl.
Fájl: mocks.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.mocksfile.schema.json",
"mocks": [
{
"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"
}
]
}
}
]
}
A @-token használata szöveggel és bináris fájlokkal működik.
Fejlesztői proxy konfigurálása a modellválaszok használatára
A modellfájl létrehozása után konfigurálnia kell a Dev Proxyt a modellválaszok használatára. Ha a Dev Proxyt a válaszok szimulálására szeretné konfigurálni, adja hozzá a MockResponsePlugin a devproxyrc fájl beépülő moduljainak listájához.
Fájl: devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/rc.schema.json",
"plugins": [
{
"name": "MockResponsePlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "mockResponsePlugin"
}
],
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
"mockResponsePlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json"
},
"logLevel": "information",
"newVersionNotification": "stable",
"showSkipMessages": true
}
Először adja hozzá a MockResponsePlugin-t a beépülő modulok listájához. Adjon meg egy hivatkozást a konfigurációs szakaszra, ahol megadhatja a modellfájl elérési útját.
A Dev Proxy indításakor a rendszer felolvassa a makettfájlt, és a modellválaszokkal válaszol a megadott modellekkel egyező kérésekre.
Nem imitált kérés támogatása
A fejlesztői proxy támogatja a hiba küldését, ha a proxy elfog egy nem kicsomagolt kérést. A nem kicsomagolt kérések sikertelen végrehajtásának lehetősége hasznos a modellfájlban kihagyott kérések azonosításához.
A funkció bekapcsolásához adja hozzá és engedélyezze a blockUnmockedRequests beállítást a devproxyrc fájl MockResponsePlugin konfigurációs szakaszában.
Fájl: devproxyrc.json
{
"mocksPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.1.0/mockresponseplugin.schema.json",
"mocksFile": "mocks.json",
"blockUnmockedRequests": true
}
}
Amikor a Dev Proxy elfog egy kérelmet, amelyet nem tud kipockázni, 502 Bad Gateway választ ad vissza.
Következő lépés
További információ a MockResponsePluginről.
Minták
Lásd még a kapcsolódó Dev Proxy-mintákat:
- Microsoft Graph-ábrák Microsoft Graph API-dokumentumokból
- Microsoft Graph API-dokumentumokból származó Microsoft Graph-ábrák tesztkörnyezeti adatokkal
- Microsoft Graph-összekötő és séma létrehozásának szimulálása
Lásd még
- CRUD API szimulálása – Dinamikus mock API-k létrehozása teljes CRUD-műveletekkel
- Mock n-th kérés – Eltérő válaszokat ad vissza az ismétlődő kérésekhez
- Bináris adatokat visszaadó válaszok szimulálása – Képek és fájlok visszaadása
- Makettfájl módosítása – Váltás a modellfájlok között
- Szószedet – Fejlesztői proxy terminológiája