Bagikan melalui


Mensimulasikan CRUD API

Saat membangun aplikasi, Anda sering berinteraksi dengan API backend. Terkadang, API ini belum tersedia, atau tim lain memperbaruinya untuk memenuhi persyaratan terbaru. Untuk menghindari menunggu, Anda biasanya membuat API tiruan yang mengembalikan data yang Anda butuhkan. Meskipun pendekatan ini membuka blokir Anda, Anda harus meluangkan waktu untuk membangun API yang pada akhirnya akan Anda ganti dengan yang sebenarnya. Untuk menghindari membuang waktu, Anda dapat menggunakan Dev Proxy untuk mensimulasikan CRUD API dan mempercepat pengembangan.

CrudApiPluginDengan menggunakan , Anda dapat mensimulasikan API CRUD (Buat, Baca, Perbarui, Hapus) dengan penyimpanan data dalam memori. Dengan menggunakan file konfigurasi sederhana, Anda dapat menentukan URL mana yang didukung API tiruan Anda dan data apa yang dikembalikannya. Plugin ini juga mendukung CORS untuk penggunaan lintas domain dari aplikasi sisi klien.

MockResponsePlugin Jika memungkinkan Anda menentukan respons tiruan statis, CrudApiPlugin memungkinkan Anda menentukan API tiruan dinamis yang dapat Anda gunakan untuk berinteraksi dengan data dan melihat perubahan yang tercermin dalam himpunan data tiruan.

Skenario

Katakanlah, Anda membuat aplikasi yang memungkinkan pengguna mengelola pelanggan. Untuk mendapatkan data, Anda perlu memanggil /customers titik akhir API backend. Untuk menghindari menunggu tim backend menyelesaikan pekerjaan mereka, Anda memutuskan untuk menggunakan Dev Proxy untuk mensimulasikan API dan mengembalikan data yang Anda butuhkan.

Anda mulai dengan mengaktifkan CrudApiPlugin dan mengonfigurasinya untuk menggunakan customers-api.json file.

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

customers-api.json Dalam file, Anda menentukan API pelanggan tiruan.

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

baseUrl Di properti , Anda menentukan URL dasar API tiruan. dataFile Di properti , Anda menentukan file yang berisi data pelanggan tiruan. actions Di properti, Anda menentukan tindakan yang didukung serta kaitannya dengan metode HTTP dan URL. Anda ingin menggunakan API Anda untuk:

  • dapatkan semua pelanggan, dengan memanggil GET /v1/customers
  • Mendapatkan seorang pelanggan, dengan menelepon GET /v1/customers/{customer-id}
  • tambahkan pelanggan baru, dengan memanggil POST /v1/customers,
  • memperbarui informasi pelanggan dengan menghubungi PATCH /v1/customers/{customer-id}.
  • menghapus pelanggan dengan memanggil DELETE /v1/customers/{customer-id}

Di URL Anda, Anda menggunakan parameter {customer-id}, yang diganti oleh plugin dengan ID pelanggan aktual dari URL. Plugin juga menggunakan {customer-id} parameter dalam kueri JSONPath untuk mencari pelanggan dalam file data.

customers-data.json Dalam file, Anda menentukan data pelanggan tiruan.

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

Anda memulai Dev Proxy dan mengakses https://api.contoso.com/v1/customers endpoint. Dev Proxy mencegat permintaan dan mengembalikan data pelanggan tiruan.

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

Langkah selanjutnya

Pelajari selengkapnya tentang CrudApiPlugin.

Sampel

Lihat juga sampel Proksi Dev terkait: