Megosztás a következőn keresztül:


CRUD API szimulálá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. 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.

A CrudApiPlugin segítségével egy CRUD (létrehozás, olvasás, frissítés, törlés) API-t szimulálhat 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.

Ahol a MockResponsePlugin statikus modellválaszok definiálhatók, az CrudApiPlugin lehetővé teszi egy dinamikus szimulált API definiálását, amellyel kezelheti az adatokat, és megtekintheti a módosításokat a szimulált adatkészletben.

Eset

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. 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.

Először engedélyezze a CrudApiPlugin fájlt, és konfigurálja azt a customers-api.json fájl használatára.

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

A customers-api.json fájlban határozza meg a tesztügyfelek API-t.

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/crudapiplugin.apifile.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})]"
    }
  ]
}

A tulajdonságban baseUrl meg kell határoznia a modell API alap URL-címét. A tulajdonságban dataFile meg kell határoznia azt a fájlt, amely az ügyféladatok szimulálásához használt adatokat tartalmazza. A tulajdonságban actions meg kell határoznia a támogatott műveleteket és azok HTTP-metódusokkal és URL-címekkel való leképezését. Az API-t a következő célokra szeretné használni:

  • az összes ügyfél lekérése a GET /v1/customers hívásával
  • Egyetlen ügyfél megszerzése telefonon keresztül, GET /v1/customers/{customer-id}
  • új ügyfél hozzáadása hívással POST /v1/customers,
  • egy ügyfél tájékoztatása telefonon keresztül PATCH /v1/customers/{customer-id}
  • ügyfél törlése hívással DELETE /v1/customers/{customer-id}

Az URL-címekben a {customer-id} paramétert használod, amelyet a plugin az URL-ből származó tényleges ügyfélazonosítóra cserél. A beépülő modul egy {customer-id} JSONPath-lekérdezés paraméterével is megkeresi az ügyfelet az adatfájlban.

A fájlban customers-data.json meg kell határoznia a modell ügyféladatait.

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

Indítsa el a dev proxyt, és hívja meg a végpontot https://api.contoso.com/v1/customers . A Dev Proxy elfogja a kérést, és visszaadja a modell ügyféladatait.

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

Következő lépés

További információ a CrudApiPluginról.

Példák

Lásd még a kapcsolódó Dev Proxy-mintákat: