Delen via


Een CRUD-API simuleren via internet

Met Dev Proxy kunt u CRUD-API's simuleren zonder dat u ze hoeft te 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. Gebruik Dev Tunnelsom een CRUD-API beschikbaar te maken die is gesimuleerd door dev proxy via internet. In dit artikel wordt uitgelegd hoe u een CRUD-API configureert die via internet beschikbaar moet worden gemaakt met behulp van Dev Tunnels.

Tip

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

CRUD-API configureren om beschikbaar te worden gesteld via internet

Als u een CRUD-API wilt weergeven die is gesimuleerd door dev proxy via 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

Maak een gegevensbestand met de naam orders-data.json, dat de CRUD-API ondersteunt, 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 CRUD-API-URL, de bewerkingen en het gegevensbestand opgeeft. Zorg ervoor dat u een HTTP-URL opgeeft in de eigenschap 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})]"
    }
  ]
}

Dev Proxy-configuratie definiëren

Maak vervolgens een Dev Proxy-configuratiebestand met de naam devproxyrc.json met de CrudApiPlugin ingeschakeld. Configureer Dev Proxy om te luisteren naar de URL die u hebt geconfigureerd voor uw 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"
  }
}

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 dev-proxyconfiguratie 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 via internet

Als u de CRUD-API via internet beschikbaar wilt maken, start u een dev-tunnel 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 id van de dev-tunnel 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"
  }
]