Megosztás a következőn keresztül:


CRUD API szimulálása az interneten keresztül

A Dev Proxy lehetővé teszi a CRUD API-k szimulálására anélkül, hogy létre kellene őket készítenie. Az API-k Dev Proxyval történő szimulálásával időt takaríthat meg, és felgyorsíthatja a fejlesztést. Ha az API-t felhőszolgáltatásokkal integrálja, az API-t az interneten keresztül kell elérhetővé tennie, hogy a felhőszolgáltatás hozzáférhessen. Az interneten a Dev Proxy által szimulált CRUD API közzétételéhez a Dev Tunnelslehet használni. Ez a cikk bemutatja, hogyan konfigurálhat egy CRUD API-t úgy, hogy az interneten keresztül a Dev Tunnels használatával legyen közzétéve.

Borravaló

A cikkben szereplő CRUD API a Northwind-adatbázis fejlesztői proxymintáján alapul,.

A CRUD API konfigurálása, hogy az interneten keresztül legyen közzétéve

A Dev Proxy által az interneten szimulált CRUD API közzétételéhez először konfigurálja a CRUD API-t.

Fontos

Jelenleg csak http CRUD API-kat tehet közzé az interneten a Dev Tunnels használatával.

A CRUD API-adatok definiálása

Hozzon létre egy orders-data.jsonnevű adatfájlt, amely a CRUD API-t használja, például:

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

A CRUD API konfigurálása

Ezután hozza létre a orders-api.jsonnevű API-konfigurációs fájlt, ahol megadhatja a CRUD API URL-címét, műveleteit és adatfájlját. Mindenképpen adjon meg EGY HTTP-URL-címet a baseUrl tulajdonságban:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/crudapiplugin.apifile.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})]"
    }
  ]
}

Fejlesztői proxykonfiguráció definiálása

Ezután hozzon létre egy devproxyrc.json nevű dev proxy konfigurációs fájlt, amelyen engedélyezve van a CrudApiPlugin. A Dev Proxy konfigurálása a CRUD API-hoz konfigurált URL-cím meghallgatásához:

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v1.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "CrudApiPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "ordersApi"
    }
  ],
  "urlsToWatch": [
    "http://api.northwind.com/*"
  ],
  "ordersApi": {
    "apiFile": "orders-api.json"
  }
}

Konfiguráció ellenőrzése

Ellenőrizze, hogy a CRUD API megfelelően működik-e a Dev Proxy futtatásával és a kérések CRUD API-nak való küldésével.

Indítsa el a Dev Proxyt, feltéve, hogy a Dev Proxy konfigurációját egy devproxyrc.json nevű fájlba mentette az aktuális munkakönyvtárban:

devproxy

A CRUD API meghívása curl használatával:

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

A CRUD API elérhetővé tehető az interneten keresztül

A CRUD API internetes közzétételéhez indítsa el a Dev Proxy portra leképezett fejlesztői alagutat. Állítsa be az alagutat, hogy a CRUD API számára konfigurált gazdagépnevet használja.

Figyelmeztetés

Ha engedélyezi a névtelen hozzáférést egy fejlesztői alagúthoz, az azt jelenti, hogy az interneten bárki csatlakozhat a helyi kiszolgálóhoz, ha kitalálják a fejlesztői alagút azonosítóját.

$ 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

Hívja meg a CRUD API-t, amelyet a Dev Proxy a dev alagúton keresztül szimulál a curl használatával:

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