Simulace rozhraní CRUD API
Při vytváření aplikací často komunikujete s back-endovými rozhraními API. V některých případech tato rozhraní API ještě nejsou dostupná nebo je ostatní týmy aktualizují tak, aby splňovaly nejnovější požadavky. Abyste se vyhnuli čekání, obvykle vytvoříte napodobené rozhraní API, které vrací potřebná data. I když vás tento přístup odblokuje, vyžaduje, abyste strávili čas vytvořením rozhraní API, které nakonec nahradíte skutečným rozhraním API. Abyste se vyhnuli plýtvání časem, můžete pomocí Dev Proxy simulovat rozhraní CRUD API a urychlit vývoj.
Pomocí rozhraní CrudApiPlugin
API CRUD (vytvoření, čtení, aktualizace, odstranění) můžete simulovat úložiště dat v paměti. Pomocí jednoduchého konfiguračního souboru můžete definovat, které adresy URL vaše napodobené rozhraní API podporuje a jaká data vrací. Modul plug-in také podporuje CORS pro použití mezi doménami z klientských aplikací.
MockResponsePlugin
Kde můžete definovat statické napodobení odpovědí, umožňuje definovat dynamické napodobení rozhraní API, CrudApiPlugin
které můžete použít k interakci s daty a vidět změny, které se projeví v množině dat.
Scénář
Řekněme, že vytváříte aplikaci, která uživatelům umožňuje spravovat zákazníky. Pokud chcete získat data, musíte volat /customers
koncový bod back-endového rozhraní API. Abyste se vyhnuli čekání na dokončení práce back-endového týmu, rozhodnete se pomocí dev proxy serveru simulovat rozhraní API a vrátit potřebná data.
Začnete tím, že povolíte CrudApiPlugin
a nakonfigurujete soubor tak, aby používal.customers-api.json
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "customersApi"
}
{
"customersApi": {
"apiFile": "customers-api.json"
}
}
customers-api.json
V souboru definujete napodobení rozhraní API zákazníků.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/crudapiplugin.schema.json",
"baseUrl": "https://api.contoso.com/v1/customers",
"dataFile": "customers-data.json",
"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})]"
}
]
}
baseUrl
Ve vlastnosti definujete základní adresu URL napodobeného rozhraní API. dataFile
Ve vlastnosti definujete soubor, který obsahuje napodobená zákaznická data. actions
Ve vlastnosti definujete podporované akce a způsob mapování na metody HTTP a adresy URL. Rozhraní API chcete použít k:
- získat všechny zákazníky voláním
GET /v1/customers
- získání jednoho zákazníka voláním
GET /v1/customers/{customer-id}
- přidat nového zákazníka zavoláním
POST /v1/customers
- aktualizovat zákazníka voláním
PATCH /v1/customers/{customer-id}
, - odstranění zákazníka voláním
DELETE /v1/customers/{customer-id}
V adresách URL použijete {customer-id}
parametr, který modul plug-in nahradí skutečným ID zákazníka z adresy URL. Modul plug-in také pomocí parametru {customer-id}
v dotazu JSONPath vyhledá zákazníka v datovém souboru.
customers-data.json
V souboru definujete napodobená zákaznická data.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Spustíte Dev Proxy a zavoláte https://api.contoso.com/v1/customers
koncový bod. Dev Proxy zachytí požadavek a vrátí napodobená zákaznická data.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Další krok
Přečtěte si další informace o CrudApiPlugin.
Ukázky
Projděte si také související ukázky dev proxy serveru: