Aracılığıyla paylaş


İnternet genelinde CRUD API'si simülasyonu

Bir bakışta
Hedef: Geliştirme tünelleri aracılığıyla CRUD API'lerini kullanıma sunma
Süre: 15 dakika
Eklentiler:CrudApiPlugin
Önkoşullar:Geliştirme Ara Sunucusu, Geliştirme Tünellerini Ayarlama

Geliştirme Proxy'si, CRUD API'lerini oluşturmak zorunda kalmadan benzetimini yapmanızı sağlar. Dev Proxy kullanarak API'lerin benzetimini yapmak zaman kazanmanızı ve geliştirmeyi hızlandırmanızı sağlar. API'nizi bulut hizmetleriyle tümleştirdiğinizde, bulut hizmetinin erişebilmesi için API'nizi İnternet üzerinden kullanıma sunmanız gerekir. Geliştirme Proxy'si tarafından simülasyonu yapılan bir CRUD API'sini İnternet'te kullanıma açmak için Geliştirme Tünelleri'ni kullanın. Bu makalede, Geliştirme Tünelleri kullanılarak İnternet'te kullanıma sunulacak bir CRUD API'sinin nasıl yapılandırılacağı açıklanmaktadır.

Bahşiş

Bu makaledeki CRUD API'si, Northwind veritabanı Geliştirme Ara Sunucusu örneğini temel alır.

CRUD API'sini İnternet'te kullanıma sunulacak şekilde yapılandırma

Geliştirme Proxy'si tarafından simülasyonu yapılan bir CRUD API'sini İnternet'te kullanıma açmak için CRUD API'sini yapılandırarak başlayın.

Önemli

Şu anda HTTP CRUD API'lerini yalnızca Geliştirme Tünellerini kullanarak İnternet'te kullanıma açabilirsiniz.

CRUD API verilerini tanımlama

CRUD API'sini destekleyen orders-data.jsonadlı bir veri dosyası oluşturun, örneğin:

Dosya: orders-data.json

[
  {
    "OrderID": 10248,
    "CustomerID": "VINET",
    "EmployeeID": 5,
    "OrderDate": "1996-07-04T00:00:00",
    "RequiredDate": "1996-08-01T00:00:00",
    "ShippedDate": "1996-07-16T00:00:00",
    "ShipVia": 3,
    "Freight": 32.38,
    "ShipName": "Vins et alcools Chevalier",
    "ShipAddress": "59 rue de l'Abbaye",
    "ShipCity": "Reims",
    "ShipPostalCode": "51100",
    "ShipCountry": "France"
  },
  {
    "OrderID": 10249,
    "CustomerID": "TOMSP",
    "EmployeeID": 6,
    "OrderDate": "1996-07-05T00:00:00",
    "RequiredDate": "1996-08-16T00:00:00",
    "ShippedDate": "1996-07-10T00:00:00",
    "ShipVia": 1,
    "Freight": 11.61,
    "ShipName": "Toms Spezialitäten",
    "ShipAddress": "Luisenstr. 48",
    "ShipCity": "Münster",
    "ShipPostalCode": "44087",
    "ShipCountry": "Germany"
  }
]

CRUD API'sini yapılandırma

Ardından, CRUD API URL'sini, işlemlerini ve veri dosyasını belirttiğiniz orders-api.jsonadlı API yapılandırma dosyasını oluşturun. baseUrl özelliğinde bir HTTP URL'si belirttiğinizden emin olun:

Dosya: orders-api.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/crudapiplugin.apifile.schema.json",
  "baseUrl": "http://api.northwind.com/orders",
  "auth": "none",
  "dataFile": "orders-data.json",
  "actions": [
    {
      "action": "getAll"
    },
    {
      "action": "getOne",
      "url": "/{order-id}",
      "query": "$.[?(@.OrderID == {order-id})]"
    },
    {
      "action": "create"
    },
    {
      "action": "merge",
      "url": "/{order-id}",
      "query": "$.[?(@.OrderID == {order-id})]"
    },
    {
      "action": "delete",
      "url": "/{order-id}",
      "query": "$.[?(@.OrderID == {order-id})]"
    }
  ]
}

Geliştirme Proxy'si yapılandırmasını tanımlama

Ardından, devproxyrc.json etkinleştirilmiş bir CrudApiPlugin adlı Dev Proxy yapılandırma dosyası oluşturun. CruD API'niz için yapılandırdığınız URL'yi dinlemek için Geliştirme Proxy'sini yapılandırın:

Dosya: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "CrudApiPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "ordersApi"
    }
  ],
  "urlsToWatch": [
    "http://api.northwind.com/*"
  ],
  "ordersApi": {
    "apiFile": "orders-api.json"
  }
}

Yapılandırmayı doğrulama

Dev Proxy çalıştırarak ve CRUD API'sine istek göndererek CRUD API'sinin düzgün çalıştığını doğrulayın.

Geçerli çalışma dizinindeki devproxyrc.json adlı dosyaya Dev Proxy yapılandırmasını kaydettiğinizi varsayarak Dev Proxy'yi başlatın.

devproxy

Curl kullanarak CRUD API'sini çağırın:

$ curl -x http://127.0.0.1:8000 http://api.northwind.com/orders

[
  {
    "OrderID": 10248,
    "CustomerID": "VINET",
    "EmployeeID": 5,
    "OrderDate": "1996-07-04T00:00:00",
    "RequiredDate": "1996-08-01T00:00:00",
    "ShippedDate": "1996-07-16T00:00:00",
    "ShipVia": 3,
    "Freight": 32.38,
    "ShipName": "Vins et alcools Chevalier",
    "ShipAddress": "59 rue de l'Abbaye",
    "ShipCity": "Reims",
    "ShipPostalCode": "51100",
    "ShipCountry": "France"
  },
  {
    "OrderID": 10249,
    "CustomerID": "TOMSP",
    "EmployeeID": 6,
    "OrderDate": "1996-07-05T00:00:00",
    "RequiredDate": "1996-08-16T00:00:00",
    "ShippedDate": "1996-07-10T00:00:00",
    "ShipVia": 1,
    "Freight": 11.61,
    "ShipName": "Toms Spezialitäten",
    "ShipAddress": "Luisenstr. 48",
    "ShipCity": "Münster",
    "ShipPostalCode": "44087",
    "ShipCountry": "Germany"
  }
]

CRUD API'sini İnternet üzerinden kullanıma sunma

CRUD API'sini İnternet üzerinden kullanıma açmak için Dev Proxy bağlantı noktasına eşlenmiş bir geliştirme tüneli başlatın. Tüneli CRUD API için yapılandırılan ana bilgisayar adını kullanacak şekilde yapılandırın.

Uyarı

Geliştirme tüneline anonim erişime izin vermek, geliştirme tüneli kimliğini tahmin edebiliyorsa internet üzerindeki herkesin yerel sunucunuza bağlanabileceği anlamına gelir.

$ devtunnel host -p 8000 -a --host-header api.northwind.com

Hosting port: 8000
Connect via browser: https://vpfm55qw.euw.devtunnels.ms:8000, https://vpfm55qw-8000.euw.devtunnels.ms
Inspect network activity: https://vpfm55qw-8000-inspect.euw.devtunnels.ms

Ready to accept connections for tunnel: vpfm55qw

Dev Proxy'nin curl kullanarak geliştirme tüneli aracılığıyla simülasyonunu yaptığı CRUD API'sini çağırın:

$ curl https://vpfm55qw-8000.euw.devtunnels.ms/orders

[
  {
    "OrderID": 10248,
    "CustomerID": "VINET",
    "EmployeeID": 5,
    "OrderDate": "1996-07-04T00:00:00",
    "RequiredDate": "1996-08-01T00:00:00",
    "ShippedDate": "1996-07-16T00:00:00",
    "ShipVia": 3,
    "Freight": 32.38,
    "ShipName": "Vins et alcools Chevalier",
    "ShipAddress": "59 rue de l'Abbaye",
    "ShipCity": "Reims",
    "ShipPostalCode": "51100",
    "ShipCountry": "France"
  },
  {
    "OrderID": 10249,
    "CustomerID": "TOMSP",
    "EmployeeID": 6,
    "OrderDate": "1996-07-05T00:00:00",
    "RequiredDate": "1996-08-16T00:00:00",
    "ShippedDate": "1996-07-10T00:00:00",
    "ShipVia": 1,
    "Freight": 11.61,
    "ShipName": "Toms Spezialitäten",
    "ShipAddress": "Luisenstr. 48",
    "ShipCity": "Münster",
    "ShipPostalCode": "44087",
    "ShipCountry": "Germany"
  }
]

Ayrıca bakınız