Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
En un clin d’œil
Objectif: Exposer l’API CRUD via des tunnels de développement
Heure : 15 minutes
Plugins :CrudApiPlugin
Prérequis :configurer le proxy de développement, les tunnels de développement
Le proxy de développement vous permet de simuler des API CRUD sans avoir à les générer. La simulation d’API à l’aide du proxy de développement vous permet de gagner du temps et d’accélérer le développement. Lorsque vous intégrez votre API aux services cloud, vous devez exposer votre API sur Internet afin que le service cloud puisse y accéder. Pour exposer une API CRUD simulée par le proxy de développement sur Internet, utilisez Dev Tunnels. Cet article explique comment configurer une API CRUD à exposer sur Internet à l’aide de Dev Tunnels.
Conseil / Astuce
L’API CRUD de cet article est basée sur l’exemple de proxy de développement de base de données Northwind.
Configurer l’API CRUD pour qu’elle soit exposée sur Internet
Pour exposer une API CRUD simulée par le proxy de développement sur Internet, commencez par configurer l’API CRUD.
Important
À ce stade, vous pouvez uniquement exposer des API CRUD HTTP sur Internet à l’aide de Dev Tunnels.
Définir les données de l’API CRUD
Créez un fichier de données nommé orders-data.json, qui sauvegarde l’API CRUD, par exemple :
Fichier : orders-data.json
[
{
"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"
}
]
Configurer l’API CRUD
Ensuite, créez le fichier de configuration d’API nommé orders-api.json, où vous spécifiez l’URL de l’API CRUD, ses opérations et le fichier de données. Veillez à spécifier une URL HTTP dans la baseUrl propriété :
Fichier : orders-api.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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})]"
}
]
}
Définir la configuration du proxy de développement
Ensuite, créez un fichier de configuration du proxy de développement nommé devproxyrc.json avec l’option CrudApiPlugin activée. Configurez le proxy de développement pour écouter l’URL que vous avez configurée pour votre API CRUD :
Fichier : devproxyrc.json
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.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"
}
}
Vérifier la configuration
Vérifiez que l’API CRUD fonctionne correctement en exécutant le proxy de développement et en envoyant des requêtes à l’API CRUD.
Démarrez le proxy de développement, en supposant que vous avez enregistré la configuration du proxy de développement dans un fichier nommé devproxyrc.json dans le répertoire de travail actuel :
devproxy
Appelez l’API CRUD à l’aide de 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"
}
]
Exposer l’API CRUD sur Internet
Pour exposer l’API CRUD sur Internet, démarrez un tunnel de développement mappé au port du proxy de développement. Configurez le tunnel pour utiliser le nom d’hôte configuré pour l’API CRUD.
Avertissement
Autoriser l’accès anonyme à un tunnel de développement signifie que toute personne sur Internet est en mesure de se connecter à votre serveur local, s’il peut deviner l’ID du tunnel de développement.
$ 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
Appelez l’API CRUD que le proxy de développement simule via le tunnel de développement à l’aide de 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"
}
]