Freigeben über


Simulieren einer CRUD-API über das Internet

Mit dem Dev Proxy können Sie CRUD-APIs simulieren , ohne sie erstellen zu müssen. Durch die Simulation von APIs mithilfe des Dev Proxys können Sie Zeit sparen und die Entwicklung beschleunigen. Wenn Sie Ihre API in Clouddienste integrieren, müssen Sie Ihre API über das Internet verfügbar machen, damit der Clouddienst darauf zugreifen kann. Verwenden Sie Dev Tunnels, um eine CRUD-API verfügbar zu machen, die vom Dev Proxy über das Internet simuliert wird. In diesem Artikel wird erläutert, wie Sie eine CRUD-API konfigurieren, die mithilfe von Dev Tunnels über das Internet verfügbar gemacht wird.

Tipp

Die CRUD-API in diesem Artikel basiert auf dem Dev Proxy-Beispiel für die Northwind-Datenbank.

Konfigurieren der CRUD-API für die Internet-Verfügbar gemacht werden

Um eine vom Dev Proxy simulierte CRUD-API über das Internet verfügbar zu machen, beginnen Sie mit der Konfiguration der CRUD-API.

Wichtig

Derzeit können Sie HTTP CRUD-APIs nur mithilfe von Dev Tunnels im Internet verfügbar machen.

Definieren der CRUD-API-Daten

Create eine Datendatei namens orders-data.json, die die CRUD-API zurückgibt, z. B.:

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

Konfigurieren der CRUD-API

Erstellen Sie als Nächstes die API-Konfigurationsdatei mit dem Namen orders-api.json, in der Sie die CRUD-API-URL, die zugehörigen Vorgänge und die Datendatei angeben. Stellen Sie sicher, dass Sie eine HTTP-URL in der baseUrl -Eigenschaft angeben:

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

Definieren der Dev Proxy-Konfiguration

Erstellen Sie als Nächstes eine Dev Proxy-Konfigurationsdatei namens devproxyrc.json mit CrudApiPlugin aktiviertem . Konfigurieren Sie den Dev Proxy, um auf die URL zu lauschen, die Sie für Ihre CRUD-API konfiguriert haben:

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.17.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"
  }
}

Überprüfen der Konfiguration

Überprüfen Sie, ob die CRUD-API ordnungsgemäß funktioniert, indem Sie den Dev Proxy ausführen und Anforderungen an die CRUD-API senden.

Starten Sie den Dev Proxy, wenn Sie die Dev Proxy-Konfiguration in einer Datei namens devproxyrc.json im aktuellen Arbeitsverzeichnis gespeichert haben:

devproxy

Rufen Sie die CRUD-API mithilfe von curl auf:

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

Verfügbarmachen der CRUD-API im Internet

Um die CRUD-API im Internet verfügbar zu machen, starten Sie einen Entwicklungstunnel, der dem Dev Proxy-Port zugeordnet ist. Konfigurieren Sie den Tunnel so, dass der für die CRUD-API konfigurierte Hostname verwendet wird.

Warnung

Wenn Sie anonymen Zugriff auf einen Entwicklungstunnel zulassen, kann jeder benutzer im Internet eine Verbindung mit Ihrem lokalen Server herstellen, wenn er die Dev Tunnel-ID erraten kann.

$ 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

Rufen Sie die CRUD-API auf, die der Dev Proxy über den Dev-Tunnel mit curl simuliert:

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