Delen via


Een CRUD-API op internet simuleren

Met Dev Proxy kunt u CRUD-API's simuleren zonder ze te hoeven bouwen. Door API's te simuleren met behulp van Dev Proxy kunt u tijd besparen en de ontwikkeling versnellen. Wanneer u uw API integreert met cloudservices, moet u uw API beschikbaar maken via internet, zodat de cloudservice er toegang toe heeft. Als u een CRUD-API beschikbaar wilt maken die is gesimuleerd door Dev Proxy op internet, gebruikt u Dev Tunnels. In dit artikel wordt uitgelegd hoe u een CRUD-API configureert om beschikbaar te worden gemaakt via internet met behulp van Dev Tunnels.

Tip

De CRUD-API in dit artikel is gebaseerd op het voorbeeld van de Dev Proxy van de Northwind-database.

CRUD-API configureren om beschikbaar te worden gemaakt via internet

Als u een CRUD-API beschikbaar wilt maken die is gesimuleerd door Dev Proxy op internet, begint u met het configureren van de CRUD-API.

Belangrijk

Op dit moment kunt u alleen HTTP CRUD-API's beschikbaar maken via internet met behulp van Dev Tunnels.

De CRUD API-gegevens definiëren

Creatie een gegevensbestand met de naam orders-data.json, dat een back-up van de CRUD-API biedt, bijvoorbeeld:

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

De CRUD-API configureren

Maak vervolgens het API-configuratiebestand met de naam orders-api.json, waarin u de URL van de CRUD-API, de bewerkingen en het gegevensbestand opgeeft. Zorg ervoor dat u een HTTP-URL opgeeft in de baseUrl eigenschap:

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

Configuratie van dev-proxy definiëren

Maak vervolgens een Dev Proxy-configuratiebestand met de naam devproxyrc.json met de CrudApiPlugin ingeschakeld. Dev Proxy configureren om te luisteren naar de URL die u hebt geconfigureerd voor uw CRUD-API:

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

Configuratie controleren

Controleer of de CRUD-API correct werkt door Dev Proxy uit te voeren en aanvragen naar de CRUD-API te verzenden.

Start Dev Proxy, ervan uitgaande dat u de configuratie van de dev-proxy hebt opgeslagen in een bestand met de naam devproxyrc.json in de huidige werkmap:

devproxy

Roep de CRUD-API aan met behulp van 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"
  }
]

De CRUD-API beschikbaar maken op internet

Als u de CRUD-API op internet beschikbaar wilt maken, start u een ontwikkeltunnel die is toegewezen aan de dev-proxypoort. Configureer de tunnel om de hostnaam te gebruiken die is geconfigureerd voor de CRUD-API.

Waarschuwing

Anonieme toegang tot een dev-tunnel toestaan betekent dat iedereen op internet verbinding kan maken met uw lokale server, als ze de dev-tunnel-id kunnen raden.

$ 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

Roep de CRUD-API aan die Dev Proxy simuleert via de dev-tunnel met behulp van 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"
  }
]