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