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