Simulace rozhraní CRUD API přes internet
Dev Proxy umožňuje simulovat rozhraní CRUD API, aniž byste je museli vytvářet. Simulace rozhraní API pomocí dev Proxy umožňuje ušetřit čas a urychlit vývoj. Když integrujete rozhraní API s cloudovými službami, musíte své rozhraní API zveřejnit přes internet, aby k němu mohla cloudová služba přistupovat. Pokud chcete zveřejnit rozhraní CRUD API simulované Dev Proxy přes internet, použijte Dev Tunnels. Tento článek vysvětluje, jak nakonfigurovat rozhraní CRUD API tak, aby bylo přístupné přes internet pomocí dev Tunnels.
Konfigurace rozhraní CRUD API tak, aby byla zpřístupněna přes internet
Pokud chcete zveřejnit rozhraní CRUD API simulované Dev Proxy přes internet, začněte jeho konfigurací.
Důležitý
V tuto chvíli můžete pomocí dev Tunnels zpřístupnit pouze rozhraní API HTTP CRUD přes internet.
Definování dat rozhraní CRUD API
Vytvořte datový soubor s názvem orders-data.json
, který zálohuje rozhraní CRUD API, například:
[
{
"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"
}
]
Konfigurace rozhraní CRUD API
Dále vytvořte konfigurační soubor rozhraní API s názvem orders-api.json
, kde zadáte adresu URL rozhraní CRUD API, jeho operace a datový soubor. Nezapomeňte zadat adresu URL PROTOKOLU HTTP ve vlastnosti 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})]"
}
]
}
Definování konfigurace dev proxy serveru
Dále vytvořte konfigurační soubor dev proxy s názvem devproxyrc.json
s povoleným CrudApiPlugin
. Nakonfigurujte Dev Proxy tak, aby naslouchal adrese URL, kterou jste nakonfigurovali pro rozhraní 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"
}
}
Ověření konfigurace
Spuštěním dev proxy serveru a odesíláním požadavků do rozhraní CRUD API ověřte, že rozhraní CRUD API funguje správně.
Spusťte Dev Proxy za předpokladu, že jste konfiguraci dev proxy uložili do souboru s názvem devproxyrc.json
v aktuálním pracovním adresáři:
devproxy
Volání rozhraní CRUD API pomocí 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"
}
]
Zveřejnění rozhraní CRUD API přes internet
Pokud chcete zveřejnit rozhraní CRUD API přes internet, spusťte vývojový tunel mapovaný na port dev proxy serveru. Nakonfigurujte tunel tak, aby používal název hostitele nakonfigurovaný pro rozhraní CRUD API.
Varování
Povolení anonymního přístupu k vývojovému tunelu znamená, že se kdokoli na internetu může připojit k místnímu serveru, pokud může uhodnout ID vývojového tunelu.
$ 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
Volání rozhraní CRUD API, které Dev Proxy simuluje prostřednictvím vývojového tunelu pomocí 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"
}
]