Sdílet prostřednictvím


Simulace rozhraní CRUD API přes internet

Dev Proxy umožňuje simulovat rozhraní CRUD API, aniž byste je museli vytvářet. Simulace rozhraní API pomocí dev Proxy umožňuje ušetřit čas a urychlit vývoj. Když integrujete rozhraní API s cloudovými službami, musíte své rozhraní API zveřejnit přes internet, aby k němu mohla cloudová služba přistupovat. Pokud chcete zveřejnit rozhraní CRUD API simulované Dev Proxy přes internet, použijte Dev Tunnels. Tento článek vysvětluje, jak nakonfigurovat rozhraní CRUD API tak, aby bylo přístupné přes internet pomocí dev Tunnels.

Spropitné

Rozhraní CRUD API v tomto článku vychází z ukázky databáze Northwind Dev Proxy .

Konfigurace rozhraní CRUD API tak, aby byla zpřístupněna přes internet

Pokud chcete zveřejnit rozhraní CRUD API simulované Dev Proxy přes internet, začněte jeho konfigurací.

Důležitý

V tuto chvíli můžete pomocí dev Tunnels zpřístupnit pouze rozhraní API HTTP CRUD přes internet.

Definování dat rozhraní CRUD API

Vytvořte datový soubor s názvem orders-data.json, který zálohuje rozhraní CRUD API, například:

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

Konfigurace rozhraní CRUD API

Dále vytvořte konfigurační soubor rozhraní API s názvem orders-api.json, kde zadáte adresu URL rozhraní CRUD API, jeho operace a datový soubor. Nezapomeňte zadat adresu URL PROTOKOLU HTTP ve vlastnosti baseUrl:

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

Definování konfigurace dev proxy serveru

Dále vytvořte konfigurační soubor dev proxy s názvem devproxyrc.json s povoleným CrudApiPlugin. Nakonfigurujte Dev Proxy tak, aby naslouchal adrese URL, kterou jste nakonfigurovali pro rozhraní CRUD API:

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

Ověření konfigurace

Spuštěním dev proxy serveru a odesíláním požadavků do rozhraní CRUD API ověřte, že rozhraní CRUD API funguje správně.

Spusťte Dev Proxy za předpokladu, že jste konfiguraci dev proxy uložili do souboru s názvem devproxyrc.json v aktuálním pracovním adresáři:

devproxy

Volání rozhraní CRUD API pomocí curl:

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

Zveřejnění rozhraní CRUD API přes internet

Pokud chcete zveřejnit rozhraní CRUD API přes internet, spusťte vývojový tunel mapovaný na port dev proxy serveru. Nakonfigurujte tunel tak, aby používal název hostitele nakonfigurovaný pro rozhraní CRUD API.

Varování

Povolení anonymního přístupu k vývojovému tunelu znamená, že se kdokoli na internetu může připojit k místnímu serveru, pokud může uhodnout ID vývojového tunelu.

$ 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

Volání rozhraní CRUD API, které Dev Proxy simuluje prostřednictvím vývojového tunelu pomocí curl:

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