Share via


CRUD API'si benzetimi

Uygulama oluştururken genellikle arka uç API'leriyle etkileşim kurarsınız. Bazen bu API'ler henüz kullanılamamaktadır veya diğer ekipler bunları en son gereksinimleri karşılayacak şekilde güncelleştirmektedir. Beklemekten kaçınmak için genellikle ihtiyacınız olan verileri döndüren bir sahte API oluşturursunuz. Bu yaklaşım engellemenizi kaldırsa da, sonunda yerine gerçek api'yi koyabileceğiniz bir API oluşturmak için zaman harcamanızı gerektirir. Zaman kaybetmemek için, CruD API'sini simüle etmek ve geliştirmeyi hızlandırmak için Dev Proxy kullanabilirsiniz.

CrudApiPluginkullanarak, bellek içi veri deposuyla CRUD (Oluşturma, Okuma, Güncelleştirme, Silme) API'sinin benzetimini yapabilirsiniz. Basit bir yapılandırma dosyası kullanarak sahte API'nizin desteklediği URL'leri ve döndürdüğü verileri tanımlayabilirsiniz. Eklenti, istemci tarafı uygulamalardan etki alanları arası kullanım için CORS'yi de destekler.

MockResponsePlugin statik sahte yanıtlar tanımlamanıza olanak tanıdığında, CrudApiPlugin verilerle etkileşim kurmak ve değişikliklerinizin sahte veri kümesine yansıtıldığını görmek için kullanabileceğiniz dinamik bir sahte API tanımlamanıza olanak tanır.

Senaryo

Örneğin, kullanıcıların müşterileri yönetmesine olanak tanıyan bir uygulama oluşturuyorsunuz. Verileri almak için arka uç API'sinin /customers uç noktasını çağırmanız gerekir. Arka uç ekibinin çalışmalarını bitirmesini beklememek için, API'nin benzetimini yapmak ve ihtiyacınız olan verileri döndürmek için Dev Proxy kullanmaya karar verirsiniz.

dosyasını etkinleştirmek CrudApiPlugin ve dosyayı kullanmak customers-api.json üzere yapılandırmakla başlarsınız.

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

customers-api.json dosyasında sahte müşteriler API'sini tanımlarsınız.

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

özelliğinde baseUrl sahte API'nin temel URL'sini tanımlarsınız. özelliğinde dataFile sahte müşteri verilerini içeren dosyayı tanımlarsınız. özelliğinde actions , desteklenen eylemleri ve bunların HTTP yöntemleri ve URL'leriyle nasıl eşlediklerini tanımlarsınız. API'nizi kullanarak şunları yapmak istiyorsunuz:

  • arayarak tüm müşterileri edinin GET /v1/customers
  • arayarak tek bir müşteri alın GET /v1/customers/{customer-id}
  • çağrısı POST /v1/customersyaparak yeni bir müşteri ekleyin.
  • çağırarak PATCH /v1/customers/{customer-id}bir müşteriyi güncelleştirin.
  • arayarak müşteri silme DELETE /v1/customers/{customer-id}

URL'lerinizde eklentinin {customer-id} url'deki gerçek müşteri kimliğiyle değiştirdiği parametresini kullanırsınız. Eklenti ayrıca bir JSONPath sorgusundaki parametresini kullanarak {customer-id} müşteriyi veri dosyasında arar.

customers-data.json Dosyasında sahte müşteri verilerini tanımlarsınız.

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

Dev Proxy'yi başlatır ve uç noktayı çağırırsınız https://api.contoso.com/v1/customers . Geliştirme Proxy'si isteği durdurur ve sahte müşteri verilerini döndürür.

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

Sonraki adım

CrudApiPlugin hakkında daha fazla bilgi edinin.

Örnekler

Ayrıca ilgili Geliştirme Ara Sunucusu örneklerine de bakın: