Dela via


Simulera ett CRUD-API

När du skapar appar interagerar du ofta med serverdels-API:er. Ibland är dessa API:er inte tillgängliga ännu, eller så uppdaterar andra team dem för att uppfylla de senaste kraven. För att undvika att vänta skapar du vanligtvis ett simulerat API som returnerar de data du behöver. Även om den här metoden avblockera dig måste du ägna tid åt att skapa ett API som du så småningom ersätter med det verkliga. För att undvika slöseri med tid kan du använda Dev Proxy för att simulera ett CRUD-API och påskynda utvecklingen.

Med hjälp av CrudApiPluginkan du simulera ett CRUD-API (Skapa, Läsa, Uppdatera, Ta bort) med ett minnesinternt datalager. Med hjälp av en enkel konfigurationsfil kan du definiera vilka URL:er som ditt falska API stöder och vilka data det returnerar. Plugin-programmet stöder även CORS för användning mellan domäner från program på klientsidan.

MockResponsePlugin Där du kan definiera statiska falska svar CrudApiPlugin kan du definiera ett dynamiskt mock-API som du kan använda för att interagera med data och se dina ändringar återspeglas i den falska datauppsättningen.

Scenario

Anta att du skapar en app som gör det möjligt för användare att hantera kunder. För att hämta data måste du anropa /customers slutpunkten för serverdels-API:et. För att undvika att vänta på att serverdelsteamet ska slutföra sitt arbete bestämmer du dig för att använda Dev Proxy för att simulera API:et och returnera de data du behöver.

Du börjar med att CrudApiPlugin aktivera och konfigurera den så att den customers-api.json använder filen.

{
  "name": "CrudApiPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "customersApi"
}
{
  "customersApi": {
    "apiFile": "customers-api.json"
  }
}

customers-api.json I filen definierar du API:et för falska kunder.

{
  "$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})]"
    }
  ]
}

I egenskapen baseUrl definierar du bas-URL:en för det falska API:et. I egenskapen dataFile definierar du filen som innehåller falska kunddata. I egenskapen actions definierar du de åtgärder som stöds och hur de mappar till HTTP-metoderna och URL:erna. Du vill använda ditt API för att:

  • hämta alla kunder genom att ringa GET /v1/customers
  • hämta en enda kund genom att ringa GET /v1/customers/{customer-id}
  • lägga till en ny kund genom att anropa POST /v1/customers,
  • uppdatera en kund genom att anropa PATCH /v1/customers/{customer-id},
  • ta bort en kund genom att ringa DELETE /v1/customers/{customer-id}

I url:erna använder du parametern {customer-id} som plugin-programmet ersätter med det faktiska kund-ID:t från URL:en. Plugin-programmet använder också parametern {customer-id} i en JSONPath-fråga för att leta upp kunden i datafilen.

customers-data.json I filen definierar du falska kunddata.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Du startar Dev Proxy och anropar https://api.contoso.com/v1/customers slutpunkten. Dev Proxy fångar upp begäran och returnerar falska kunddata.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Nästa steg

Läs mer om CrudApiPlugin.

Exempel

Se även relaterade Dev Proxy-exempel: