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.
Egy pillantással
Cél: CRUD API szimulálása API-kulcsok hitelesítésével
Idő: 10 perc
Beépülő modulok:CrudApiPlugin
Előfeltételek:Fejlesztői proxy beállítása
Alkalmazások létrehozásakor gyakran használ háttér API-kat. Előfordulhat, hogy ezek az API-k még nem érhetők el, vagy más csapatok frissítik őket, hogy megfeleljenek a legújabb követelményeknek. A várakozás elkerülése érdekében általában egy szimulált API-t hoz létre, amely visszaadja a szükséges adatokat. Bár ez a megközelítés feloldja az akadályt, időt kell szánnia olyan API létrehozására, amelyet végül lecserél a valódira. Még bonyolultabb lesz, ha API-kulccsal kell biztonságossá tenni az API-t. A felesleges idő elkerülése érdekében a Dev Proxy használatával szimulálhatja a CRUD API-t, és felgyorsíthatja a fejlesztést.
CrudApiPluginA crud (létrehozás, olvasás, frissítés, törlés) API-t szimulálhatja egy memóriabeli adattárral. Egy egyszerű konfigurációs fájl használatával meghatározhatja, hogy a modell API mely URL-címeket támogatja, és milyen adatokat ad vissza. A beépülő modul emellett támogatja a CORS-t az ügyféloldali alkalmazások tartományközi használatához. A beépülő modul támogatja az API-kulcsok hitelesítését is, így biztonságossá teheti a modell API-t egy API-kulccsal, és tesztelheti, hogy az alkalmazás megfelelően küldi-e el a kulcsot.
Scenario
Például olyan alkalmazást készít, amely lehetővé teszi a felhasználók számára az ügyfelek kezelését. Az adatok lekéréséhez meg kell hívnia a /customers háttér API végpontját. Az API egy API-kulccsal van védve. Annak érdekében, hogy a háttérrendszer csapata ne várjon a munkájuk befejezésére, úgy dönt, hogy a Dev Proxy használatával szimulálja az API-t, és visszaadja a szükséges adatokat.
Mielőtt hozzákezdene
Először hozzon létre egy szimulált CRUD API-t ügyféladatokkal. Az API működésének megerősítése után egy API-kulccsal biztonságossá teheti azt.
1. példa: A fejlécben lévő API-kulccsal védett CRUD API szimulálása
Az első példában a teljes API-t egy API-kulccsal védi, amelyet az ügyfelek HTTP-fejlécben küldenek.
A fájlban adja meg az customers-api.json API-kulcsok hitelesítésével kapcsolatos információkat.
Fájl:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"headerName": "X-API-Key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Ha megadja a auth tulajdonságot apiKey , az API-t egy API-kulccsal védi a rendszer. A tulajdonságban apiKeyAuthConfig adja meg a konfiguráció részleteit. A apiKey tulajdonság az érvényes API-kulcsot adja meg, a headerName tulajdonság pedig azt a HTTP-fejlécet adja meg, ahol a beépülő modul keresi a kulcsot.
Ha úgy próbálja meghívni az API-t, hogy a X-API-Key fejléc nincs my-secret-key értékre állítva, akkor 401 Unauthorized választ kap.
2. példa: EGY LEKÉRDEZÉSI PARAMÉTERBEN API-kulccsal védett CRUD API szimulálása
Egyes API-kban az ügyfelek lekérdezési sztring paraméterként küldik el az API-kulcsot. Ezt a viselkedést a queryParameterName tulajdonság konfigurálásával szimulálhatja.
Frissítse a fájlt az customers-api.json alábbiak szerint:
Fájl:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"queryParameterName": "api_key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Ebben a példában a beépülő modul megkeresi az API-kulcsot a lekérdezési sztring api_key paraméterben. Például a https://api.contoso.com/v1/customers?api_key=my-secret-key hívása sikeres, míg a https://api.contoso.com/v1/customers hívás 401 Unauthorized választ ad vissza.
3. példa: CRUD API szimulálása, amely a fejlécből és a lekérdezési paraméterből is elfogad egy API-kulcsot
A beépülő modult úgy is konfigurálhatja, hogy fogadja el az API-kulcsot egy fejlécből és egy lekérdezési paraméterből is. A beépülő modul először ellenőrzi a fejlécet. Ha a fejléc nem tartalmazza az API-kulcsot, a beépülő modul ellenőrzi a lekérdezési paramétert.
Frissítse a fájlt az customers-api.json alábbiak szerint:
Fájl:customers-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v3.0.0/crudapiplugin.apifile.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"auth": "apiKey",
"apiKeyAuthConfig": {
"apiKey": "my-secret-key",
"headerName": "X-API-Key",
"queryParameterName": "api_key"
},
"actions": [
{
"action": "getAll"
},
{
"action": "getOne",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "create"
},
{
"action": "merge",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
},
{
"action": "delete",
"url": "/{customer-id}",
"query": "$.[?(@.id == {customer-id})]"
}
]
}
Ebben a példában a fejlécben vagy X-API-Key a api_key lekérdezési paraméterben található API-kulcsot tartalmazó kérés engedélyezve van.
Következő lépés
További információ a CrudApiPluginról.
Minták
Lásd még a kapcsolódó Dev Proxy-mintákat: