Symulowanie interfejsu API CRUD
Podczas tworzenia aplikacji często korzystasz z interfejsów API zaplecza. Czasami te interfejsy API nie są jeszcze dostępne lub inne zespoły aktualizują je w celu spełnienia najnowszych wymagań. Aby uniknąć oczekiwania, zazwyczaj należy utworzyć pozorny interfejs API, który zwraca potrzebne dane. Chociaż takie podejście odblokuje Cię, wymaga to poświęcania czasu na tworzenie interfejsu API, który ostatecznie zastępuje się rzeczywistym. Aby uniknąć marnowania czasu, możesz użyć serwera proxy deweloperów do symulowania interfejsu API CRUD i przyspieszenia programowania.
Za pomocą programu CrudApiPlugin
można symulować interfejs API CRUD (Create, Read, Update, Delete) z magazynem danych w pamięci. Korzystając z prostego pliku konfiguracji, można zdefiniować adresy URL obsługiwane przez interfejs API makiety i zwracane dane. Wtyczka obsługuje również mechanizm CORS do użycia między domenami z aplikacji po stronie klienta.
MockResponsePlugin
Gdzie umożliwia zdefiniowanie statycznych odpowiedzi makiety, CrudApiPlugin
umożliwia zdefiniowanie dynamicznego makiety interfejsu API, którego można użyć do interakcji z danymi i zobaczyć zmiany odzwierciedlane w wyśmiewanym zestawie danych.
Scenariusz
Załóżmy, że tworzysz aplikację, która umożliwia użytkownikom zarządzanie klientami. Aby uzyskać dane, musisz wywołać /customers
punkt końcowy interfejsu API zaplecza. Aby uniknąć oczekiwania na zakończenie pracy przez zespół zaplecza, decydujesz się na użycie serwera proxy deweloperów do symulowania interfejsu API i zwrócenia potrzebnych danych.
Zacznij od włączenia CrudApiPlugin
i skonfigurowania customers-api.json
go do korzystania z pliku.
{
"name": "CrudApiPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
"configSection": "customersApi"
}
{
"customersApi": {
"apiFile": "customers-api.json"
}
}
customers-api.json
W pliku zdefiniujesz pozorny interfejs API klientów.
{
"$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
We właściwości zdefiniujesz podstawowy adres URL makiety interfejsu API. dataFile
We właściwości zdefiniujesz plik zawierający pozorne dane klienta. actions
We właściwości definiujesz obsługiwane akcje i sposób mapowania ich na metody i adresy URL PROTOKOŁU HTTP. Chcesz użyć interfejsu API do:
- uzyskaj wszystkich klientów, dzwoniąc
GET /v1/customers
- uzyskiwanie pojedynczego klienta przez wywołanie połączenia
GET /v1/customers/{customer-id}
- dodaj nowego klienta, wywołując metodę
POST /v1/customers
, - zaktualizuj klienta, wywołując metodę
PATCH /v1/customers/{customer-id}
, - usuwanie klienta przez wywołanie połączenia
DELETE /v1/customers/{customer-id}
W adresach URL użyjesz parametru {customer-id}
, który wtyczka zastępuje rzeczywistym identyfikatorem klienta z adresu URL. Wtyczka używa również parametru {customer-id}
w zapytaniu JSONPath, aby wyszukać klienta w pliku danych.
customers-data.json
W pliku zdefiniujesz pozorne dane klienta.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Uruchom serwer proxy deweloperów i wywołaj https://api.contoso.com/v1/customers
punkt końcowy. Serwer proxy deweloperów przechwytuje żądanie i zwraca pozorne dane klienta.
[
{
"id": 1,
"name": "Contoso",
"address": "4567 Main St Buffalo, NY 98052"
},
{
"id": 2,
"name": "Fabrikam",
"address": "4567 Main St Buffalo, NY 98052"
}
]
Następny krok
Dowiedz się więcej o crudApiPlugin.
Przykłady
Zobacz również powiązane przykłady serwera proxy deweloperów:
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla