Simuler une API CRUD sur Internet
Dev Proxy 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 à des 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 proxy de développement sur Internet, utilisez Dev Tunnels. Cet article explique comment configurer une API CRUD pour qu’elle soit exposée sur Internet à l’aide de Dev Tunnels.
Conseil
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 un proxy de développement sur Internet, commencez par configurer l’API CRUD.
Important
À l’heure actuelle, vous pouvez uniquement exposer les API HTTP CRUD sur Internet à l’aide de Dev Tunnels.
Définir les données de l’API CRUD
Create un fichier de données, nommé orders-data.json
, qui sauvegarde l’API CRUD, par exemple :
[
{
"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 de l’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é :
{
"$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})]"
}
]
}
Définir la configuration du proxy de développement
Ensuite, créez un fichier de configuration de proxy de développement nommé devproxyrc.json
avec activé CrudApiPlugin
. Configurez le proxy de développement pour écouter l’URL que vous avez configurée pour votre 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"
}
}
Vérifier la configuration
Vérifiez que l’API CRUD fonctionne correctement en exécutant dev Proxy 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 proxy de développement. Configurez le tunnel pour utiliser le nom d’hôte configuré pour l’API CRUD.
Avertissement
L’autorisation de 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 un 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"
}
]