Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Na první pohled
Cílem: Simulace rozhraní CRUD API s ověřováním klíče rozhraní API
Čas: 10 minut
Zásuvné moduly:CrudApiPlugin
Požadavky:Nastavení dev proxy serveru
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. Je to ještě složitější, když potřebujete zabezpečit rozhraní API pomocí klíče rozhraní API. Abyste se vyhnuli plýtvání časem, můžete pomocí Dev Proxy simulovat rozhraní CRUD API a urychlit vývoj.
Pomocí rozhraní CrudApiPluginAPI 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í. Plug-in také podporuje CORS pro použití v rámci různých domén z aplikací na straně klienta. Modul plug-in také podporuje ověřování pomocí klíče rozhraní API, takže můžete zabezpečit napodobení rozhraní API pomocí klíče rozhraní API a otestovat, že vaše aplikace klíč odešle správně.
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 odeslat požadavek na /customers koncový bod backendového rozhraní API. Rozhraní API je zabezpečené pomocí klíče 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.
Než začnete
Začnete vytvořením simulovaného rozhraní CRUD API s daty zákazníků. Po potvrzení, že rozhraní API funguje, můžete ho zabezpečit pomocí klíče rozhraní API.
Příklad 1: Simulace rozhraní CRUD API zabezpečeného pomocí klíče rozhraní API v hlavičce
V prvním příkladu zabezpečíte celé rozhraní API pomocí klíče rozhraní API, který klienti posílají v hlavičce HTTP.
customers-api.json Do souboru přidejte informace o ověřování pomocí klíče rozhraní API.
Soubor: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})]"
}
]
}
Nastavením vlastnosti auth na apiKey určíte, že rozhraní API je zabezpečeno pomocí klíče API.
apiKeyAuthConfig Ve vlastnosti zadáte podrobnosti konfigurace. Vlastnost apiKey určuje platný klíč rozhraní API a headerName vlastnost určuje hlavičku HTTP, kde modul plug-in hledá klíč.
Pokud se pokusíte volat rozhraní API bez hlavičky X-API-Key nastavené na my-secret-key, získáte 401 Unauthorized odpověď.
Příklad 2: Simulace rozhraní CRUD API zabezpečeného pomocí klíče rozhraní API v parametru dotazu
V některých rozhraních API klienti odesílají klíč rozhraní API jako parametr řetězce dotazu. Toto chování můžete simulovat konfigurací queryParameterName vlastnosti.
customers-api.json Aktualizujte soubor následujícím způsobem:
Soubor: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})]"
}
]
}
V tomto příkladu modul plug-in vyhledá klíč rozhraní API v parametru api_key řetězce dotazu. Například volání https://api.contoso.com/v1/customers?api_key=my-secret-key je úspěšné, zatímco volání https://api.contoso.com/v1/customers vrací odpověď 401 Unauthorized.
Příklad 3: Simulace rozhraní CRUD API, které přijímá klíč rozhraní API z hlavičky i parametru dotazu
Modul plug-in můžete také nakonfigurovat tak, aby přijímal klíč rozhraní API z hlavičky i parametru dotazu. Modul plug-in nejprve zkontroluje hlavičku. Pokud hlavička neobsahuje klíč rozhraní API, modul plug-in zkontroluje parametr dotazu.
customers-api.json Aktualizujte soubor následujícím způsobem:
Soubor: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})]"
}
]
}
V tomto příkladu je žádost obsahující klíč rozhraní API v X-API-Key hlavičce nebo parametru api_key dotazu autorizovaná.
Další krok
Přečtěte si další informace o CrudApiPlugin.
Samples
Projděte si také související ukázky dev proxy serveru: