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