Partager via


Simuler une API CRUD

Lors de la création d’applications, vous interagissez souvent avec les API back-end. Parfois, ces API ne sont pas encore disponibles ou d’autres équipes les mettent à jour pour répondre aux dernières exigences. Pour éviter d’attendre, vous créez généralement une API fictive qui retourne les données dont vous avez besoin. Bien que cette approche vous débloque, elle vous oblige à consacrer du temps à la création d’une API que vous finissez par remplacer par la vraie. Pour éviter de perdre du temps, vous pouvez utiliser le proxy de développement pour simuler une API CRUD et accélérer le développement.

À l’aide de CrudApiPlugin, vous pouvez simuler une API CRUD (Create, Read, Update, Delete) avec un magasin de données en mémoire. À l’aide d’un fichier de configuration simple, vous pouvez définir les URL que votre API factice prend en charge et les données qu’elle retourne. Le plug-in prend également en charge CORS pour l’utilisation inter-domaines à partir d’applications côté client.

Lorsque vous MockResponsePlugin permet de définir des réponses fictives statiques, le CrudApiPlugin vous permet de définir une API fictive dynamique que vous pouvez utiliser pour interagir avec des données et voir vos modifications reflétées dans le jeu de données fictif.

Scénario

Par exemple, vous créez une application qui permet aux utilisateurs de gérer les clients. Pour obtenir les données, vous devez appeler le /customers point de terminaison de l’API back-end. Pour éviter d’attendre que l’équipe back-end termine son travail, vous décidez d’utiliser le proxy de développement pour simuler l’API et retourner les données dont vous avez besoin.

Vous commencez par activer le et le CrudApiPlugin configurer pour utiliser le customers-api.json fichier.

{
  "name": "CrudApiPlugin",
  "enabled": true,
  "pluginPath": "~appFolder/plugins/dev-proxy-plugins.dll",
  "configSection": "customersApi"
}
{
  "customersApi": {
    "apiFile": "customers-api.json"
  }
}

Dans le customers-api.json fichier, vous définissez l’API des clients fictifs.

{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/crudapiplugin.schema.json",
  "baseUrl": "https://api.contoso.com/v1/customers",
  "dataFile": "customers-data.json",
  "actions": [
    {
      "action": "getAll"
    },
    {
      "action": "getOne",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    },
    {
      "action": "create"
    },
    {
      "action": "merge",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    },
    {
      "action": "delete",
      "url": "/{customer-id}",
      "query": "$.[?(@.id == {customer-id})]"
    }
  ]
}

Dans la baseUrl propriété , vous définissez l’URL de base de l’API fictive. Dans la dataFile propriété , vous définissez le fichier qui contient des données client fictives. Dans la actions propriété , vous définissez les actions prises en charge et la façon dont elles sont mappées aux méthodes et URL HTTP. Vous souhaitez utiliser votre API pour :

  • obtenir tous les clients, en appelant GET /v1/customers
  • obtenir un seul client, en appelant GET /v1/customers/{customer-id}
  • ajouter un nouveau client, en appelant POST /v1/customers,
  • mettre à jour un client, en appelant PATCH /v1/customers/{customer-id},
  • supprimer un client, en appelant DELETE /v1/customers/{customer-id}

Dans vos URL, vous utilisez le {customer-id} paramètre , que le plug-in remplace par l’ID client réel de l’URL. Le plug-in utilise également le {customer-id} paramètre dans une requête JSONPath pour rechercher le client dans le fichier de données.

Dans le customers-data.json fichier, vous définissez les données client fictives.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Vous démarrez dev Proxy et appelez le point de https://api.contoso.com/v1/customers terminaison. Dev Proxy intercepte la requête et retourne les données client fictives.

[
  {
    "id": 1,
    "name": "Contoso",
    "address": "4567 Main St Buffalo, NY 98052"
  },
  {
    "id": 2,
    "name": "Fabrikam",
    "address": "4567 Main St Buffalo, NY 98052"
  }
]

Étape suivante

En savoir plus sur CrudApiPlugin.

Exemples

Consultez également les exemples de proxy de développement associés :