Udostępnij za pośrednictwem


Symulowanie interfejsu API CRUD w Internecie

Serwer proxy deweloperów umożliwia symulowanie interfejsów API CRUD bez konieczności ich kompilowania. Symulowanie interfejsów API przy użyciu serwera proxy deweloperów pozwala zaoszczędzić czas i przyspieszyć programowanie. Po zintegrowaniu interfejsu API z usługami w chmurze musisz uwidocznić interfejs API w Internecie, aby usługa w chmurze mogła uzyskiwać do niego dostęp. Aby uwidocznić interfejs API CRUD symulowany przez serwer proxy deweloperów w Internecie, użyj tuneli deweloperskich. W tym artykule wyjaśniono, jak skonfigurować interfejs API CRUD do uwidocznienia w Internecie przy użyciu tuneli deweloperskich.

Porada

Interfejs API CRUD w tym artykule jest oparty na przykładzie serwera proxy deweloperskiego bazy danych Northwind.

Konfigurowanie interfejsu API CRUD do uwidocznienia w Internecie

Aby uwidocznić interfejs API CRUD symulowany przez serwer proxy deweloperów w Internecie, zacznij od skonfigurowania interfejsu API CRUD.

Ważne

W tej chwili można uwidocznić tylko interfejsy API CRUD HTTP w Internecie przy użyciu tuneli deweloperskich.

Definiowanie danych interfejsu API CRUD

Twórca pliku danych o nazwie orders-data.json, który jest kopią zapasową interfejsu API CRUD, na przykład:

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

Konfigurowanie interfejsu API CRUD

Następnie utwórz plik konfiguracji interfejsu API o nazwie orders-api.json, w którym określisz adres URL interfejsu API CRUD, jego operacje i plik danych. Pamiętaj, aby określić adres URL HTTP we baseUrl właściwości:

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

Definiowanie konfiguracji serwera proxy deweloperów

Następnie utwórz plik konfiguracji serwera proxy deweloperów o nazwie devproxyrc.json z włączoną obsługą CrudApiPlugin . Skonfiguruj serwer proxy deweloperów, aby nasłuchiwać adresu URL skonfigurowanego dla interfejsu API CRUD:

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

Weryfikowanie konfiguracji

Sprawdź, czy interfejs API CRUD działa prawidłowo, uruchamiając serwer proxy deweloperów i wysyłając żądania do interfejsu API CRUD.

Uruchom serwer proxy deweloperów, zakładając, że konfiguracja serwera proxy deweloperów została zapisana w pliku o nazwie devproxyrc.json w bieżącym katalogu roboczym:

devproxy

Wywołaj interfejs API CRUD przy użyciu narzędzia 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"
  }
]

Uwidacznianie interfejsu API CRUD w Internecie

Aby uwidocznić interfejs API CRUD w Internecie, uruchom tunel deweloperski zamapowany na port serwera proxy deweloperów. Skonfiguruj tunel tak, aby używał nazwy hosta skonfigurowanej dla interfejsu API CRUD.

Ostrzeżenie

Zezwolenie na anonimowy dostęp do tunelu deweloperskiego oznacza, że każda osoba w Internecie może nawiązać połączenie z serwerem lokalnym, jeśli może odgadnąć identyfikator tunelu deweloperskiego.

$ 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

Wywołaj interfejs API CRUD symulowany przez serwer proxy deweloperów za pośrednictwem tunelu deweloperskiego przy użyciu narzędzia 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"
  }
]