DEV Community

Cover image for Comment importer des fichiers HAR dans Apidog : transformer le trafic capturé en endpoints API
Antoine Laurent
Antoine Laurent

Posted on • Originally published at apidog.com

Comment importer des fichiers HAR dans Apidog : transformer le trafic capturé en endpoints API

Vous avez vu une application effectuer une requête dans le navigateur. Ça marche. Les données sont là, dans l'onglet Réseau. Maintenant, vous voulez que ce même appel soit un point de terminaison documenté que vous pouvez enregistrer, simuler et tester, sans avoir à retaper manuellement l'URL, les en-têtes et le corps JSON.

Essayez Apidog dès aujourd’hui

Cet écart entre « le trafic que je peux voir » et « un point de terminaison que je peux réutiliser » est ce qu'un fichier HAR comble. Votre navigateur enregistre déjà chaque requête et réponse qu'il effectue. Exportez cet enregistrement, donnez-le à Apidog, et chaque appel capturé devient un véritable point de terminaison dans votre projet.

Ce guide explique comment :

  1. capturer un fichier HAR dans les Outils de développement Chrome ;
  2. l'importer avec les bonnes options ;
  3. nettoyer les points de terminaison générés pour qu'ils restent exploitables.

Pour un aperçu plus large des flux de travail de capture, consultez notre guide sur les outils de capture de paquets avec Apidog.

Qu'est-ce qu'un fichier HAR et pourquoi conserver le trafic capturé ?

HAR signifie HTTP Archive. Selon la documentation d'Apidog, un fichier .har est un fichier JSON qui enregistre l'interaction d'un navigateur web avec un site : requêtes, réponses, en-têtes et données échangées entre le navigateur et le serveur.

En pratique, un fichier HAR est une transcription complète d'une session de navigation :

  • requêtes GET, POST, etc. ;
  • URL et paramètres de requête ;
  • en-têtes envoyés ;
  • corps de requête et de réponse ;
  • codes d'état et timings.

Comme il s'agit de JSON, il est simple à partager, joindre à un rapport de bogue ou importer dans un outil compatible.

Le principal intérêt : une capture reflète le comportement réel de l'API, pas seulement ce qu'une spécification indique. En l'important dans Apidog, vous obtenez :

  • La forme réelle des requêtes : URL, paramètres, en-têtes et corps effectivement envoyés.
  • Des réponses réelles : code HTTP et charge utile utilisables comme exemples, simulations ou assertions de test.
  • Une base de documentation : des appels internes non documentés deviennent des points de terminaison nommés et annotables.

C'est utile si vous héritez d'un service sans spécification OpenAPI, si vous analysez les échanges d'un widget tiers avec son backend ou si vous devez reproduire un bogue avec la requête exacte qui l'a déclenché.

Étape 1 : capturer le fichier HAR dans les Outils de développement

La capture se fait dans le navigateur, pas dans Apidog. Chrome et Edge reposent tous deux sur les Outils de développement Chromium, donc le flux est identique.

Prenons l'exemple d'une page d'historique de commandes.

  1. Ouvrez la page à enregistrer. Connectez-vous d'abord si l'API nécessite une session : le fichier HAR inclura aussi les requêtes authentifiées.
  2. Ouvrez les Outils de développement :
    • F12
    • Ctrl+Maj+I sous Windows et Linux
    • Cmd+Option+I sur macOS
  3. Ouvrez l'onglet Réseau.
  4. Actualisez la page ou exécutez les actions dont vous souhaitez capturer le trafic.

Par exemple, l'ouverture de l'historique des commandes peut déclencher des appels comme :

/api/orders
/api/orders/{id}
Enter fullscreen mode Exit fullscreen mode
  1. Faites un clic droit sur une requête, puis sélectionnez Enregistrer tout au format HAR avec contenu.
  2. Enregistrez le fichier, par exemple sous order-history.har.

La référence du panneau Réseau des Outils de développement Chrome documente également ce flux d'exportation.

L'option avec contenu est essentielle : elle inclut les corps de réponse. Sans elle, les points de terminaison importés contiendront les requêtes, mais pas d'exemples de réponses.

Avant de quitter le navigateur, vous pouvez ouvrir le fichier .har dans un éditeur de texte. C'est du JSON lisible qui contient généralement un tableau entries. Chaque entrée possède notamment un objet request et un objet response.

{
  "log": {
    "entries": [
      {
        "request": {},
        "response": {}
      }
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

Un chargement de page contient toutefois plus que des appels API : images, CSS, JavaScript, scripts tiers, etc. Ne perdez pas de temps à les filtrer manuellement dans le navigateur : Apidog peut exclure ces ressources pendant l'importation.

Étape 2 : importer le fichier HAR dans Apidog

Une fois le fichier enregistré :

  1. Ouvrez votre projet Apidog.
  2. Allez dans Paramètres > Importer des données > Manuel.
  3. Sélectionnez HAR comme format.
  4. Téléversez votre fichier .har, par exemple order-history.har.

Avant de confirmer, configurez les trois options d'importation.

Option 1 : gestion de l'URL de base (BaseURL)

Chaque requête capturée contient une URL complète, par exemple :

https://api.shop.example.com/v1/orders/123
Enter fullscreen mode Exit fullscreen mode

Vous pouvez choisir entre deux comportements.

  • Coder en dur (Hardcode) : conserve l'URL complète dans chaque point de terminaison.
  • Supprimer (Recommandé) : retire l'hôte du chemin pour obtenir :
/v1/orders/123
Enter fullscreen mode Exit fullscreen mode

Choisissez généralement Supprimer. Vous pourrez gérer l'hôte avec une variable d'environnement et exécuter le même point de terminaison contre plusieurs environnements :

https://api.shop.example.com
https://staging-api.shop.example.com
http://localhost:3000
Enter fullscreen mode Exit fullscreen mode

Ainsi, vos points de terminaison restent portables. La BaseURL est gérée globalement via des variables d'environnement, comme expliqué dans ce guide sur la migration de la documentation Swagger vers Apidog.

Option 2 : exclusion des ressources statiques

Réglez l'option Ressource Statique sur Exclure.

Cela empêche Apidog d'importer les ressources qui ne sont pas des endpoints API :

logo.png
app.css
bundle.js
favicon.ico
Enter fullscreen mode Exit fullscreen mode

Après filtrage, vous conservez principalement les requêtes utiles :

GET /api/orders
GET /api/orders/123
POST /api/orders
Enter fullscreen mode Exit fullscreen mode

Pour presque toutes les importations HAR, laissez cette option activée.

Option 3 : génération d'un cas de test par point de terminaison

Activez Génération de cas de point de terminaison si vous souhaitez qu'Apidog crée automatiquement un cas de test par endpoint importé.

Chaque cas de test contient déjà les valeurs capturées : paramètres, en-têtes, corps et exemple de réponse. Vous pouvez donc exécuter une requête immédiatement au lieu de la reconstruire manuellement.

  • Activez cette option si vous prévoyez de tester les endpoints.
  • Désactivez-la si vous voulez uniquement importer de la documentation pour le moment.

Confirmez ensuite l'importation. Apidog lit le HAR, applique les filtres et transforme les interactions capturées en points de terminaison dans votre projet.

Un endpoint importé peut ressembler à ceci :

GET /v1/orders/123
Host: api.shop.example.com
Authorization: Bearer <token-from-capture>
Accept: application/json
Enter fullscreen mode Exit fullscreen mode

La réponse capturée peut être enregistrée à côté :

{
  "id": 123,
  "status": "shipped",
  "total": 48.5,
  "currency": "USD",
  "items": [
    {
      "sku": "TSHIRT-BLK-M",
      "qty": 2,
      "price": 19.25
    }
  ],
  "createdAt": "2026-07-14T09:31:00Z"
}
Enter fullscreen mode Exit fullscreen mode

Cette réponse réelle constitue une bonne base pour une simulation ou une assertion de test.

Étape 3 : nettoyer les points de terminaison générés

L'importation HAR est une première passe, pas une définition d'API finale. Consacrez quelques minutes au nettoyage.

Supprimer le bruit

Même avec l'exclusion des ressources statiques, vous pouvez trouver :

  • des pings d'analytics ;
  • des vérifications de santé ;
  • des appels vers des services tiers ;
  • des endpoints internes non pertinents.

Supprimez-les pour que l'arborescence ne reflète que l'API utile.

Renommer et regrouper les endpoints

Les endpoints importés sont souvent nommés d'après leur chemin. C'est fonctionnel, mais peu lisible.

Remplacez par exemple :

/v1/orders/123
Enter fullscreen mode Exit fullscreen mode

par :

Obtenir une commande par ID
Enter fullscreen mode Exit fullscreen mode

Puis organisez les endpoints dans des dossiers cohérents :

Commandes
├── Lister les commandes
├── Obtenir une commande par ID
└── Créer une commande

Utilisateurs
├── Obtenir le profil
└── Mettre à jour le profil
Enter fullscreen mode Exit fullscreen mode

Convertir les identifiants capturés en paramètres de chemin

Une capture contient des valeurs littérales. Par exemple :

/v1/orders/123
Enter fullscreen mode Exit fullscreen mode

Si 123 est un identifiant de commande, remplacez-le par un paramètre :

/v1/orders/{orderId}
Enter fullscreen mode Exit fullscreen mode

Vous transformez ainsi un appel unique en endpoint réutilisable.

Retirer les secrets avant tout partage

Un fichier HAR peut contenir des jetons, cookies et identifiants actifs. Après importation :

  1. remplacez les jetons en dur par des variables d'environnement ;
  2. supprimez les valeurs sensibles des exemples ;
  3. ne validez pas le fichier HAR dans un dépôt public ;
  4. ne joignez pas une capture non nettoyée à un ticket public.

Par exemple, remplacez :

Authorization: Bearer eyJhbGciOi...
Enter fullscreen mode Exit fullscreen mode

par :

Authorization: Bearer {{access_token}}
Enter fullscreen mode Exit fullscreen mode

La documentation Stripe sur les clés API rappelle le même principe : ne laissez jamais des clés réelles dans des artefacts partagés.

Vérifier les corps de réponse

Si un endpoint importé n'a pas de corps de réponse alors que vous attendiez des données :

  1. vérifiez que vous avez exporté le HAR avec Enregistrer tout au format HAR avec contenu ;
  2. recapturez la session si nécessaire ;
  3. réimportez le fichier.

Variations et limites à connaître

Apidog n'a pas encore d'enregistreur automatique

Apidog ne s'exécute pas actuellement en arrière-plan comme un proxy pour enregistrer automatiquement le trafic en direct.

Le flux pris en charge est donc :

  1. capturer le trafic dans les Outils de développement du navigateur ;
  2. exporter un fichier HAR ;
  3. importer ce fichier dans Apidog ;
  4. créer et exécuter des scénarios de test.

Il s'agit d'une capture manuelle suivie d'une importation, pas d'un enregistreur réseau temps réel.

L'extension de navigateur Apidog est un outil différent

Il existe une extension de navigateur Apidog, mais elle ne remplace pas l'export HAR des Outils de développement.

L'extension sert à tester et déboguer des API depuis le navigateur. Elle n'est pas destinée à capturer le trafic réseau sous forme de HAR.

Elle est aussi soumise à des limitations du navigateur :

  • certains en-têtes peuvent être bloqués, notamment Cookie, Host, Origin et Content-Length ;
  • les requêtes GET et HEAD n'envoient pas de corps ;
  • elle ne peut pas accéder directement au code local ou à une base de données derrière votre machine.

Pour capturer le trafic à importer, utilisez les Outils de développement. Pour un contrôle plus complet des requêtes et des en-têtes, utilisez le client de bureau Apidog.

D'autres formats s'importent depuis le même écran

Le menu Paramètres > Importer des données > Manuel accepte aussi d'autres formats :

  • OpenAPI ;
  • Swagger ;
  • Postman ;
  • WSDL ;
  • Insomnia.

Si vous disposez déjà d'une spécification OpenAPI ou Swagger, elle donnera généralement un résultat plus propre qu'une capture HAR, car elle est structurée à cette fin.

Consultez les guides suivants selon votre source :

Utilisez HAR lorsqu'aucune spécification exploitable n'existe et que le trafic capturé est votre meilleure source de vérité.

Automatiser le flux avec Apidog CLI

L'importation d'un HAR peut aussi être scriptée. L'interface de ligne de commande Apidog (CLI) propose une commande import pour lire directement un fichier HAR.

C'est utile si la capture est générée sur un serveur, dans un pipeline ou par un agent de codage IA.

npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>

# Transformer un fichier HAR capturé en endpoints dans votre projet
apidog import --project <PROJECT_ID> --format har --file ./capture.har
Enter fullscreen mode Exit fullscreen mode

Le flag --format accepte également des formats comme :

openapi
postman
wsdl
insomnia
Enter fullscreen mode Exit fullscreen mode

Après avoir créé des endpoints et un scénario de test, vous pouvez l'exécuter sans interface graphique dans votre CI :

apidog run --access-token $APIDOG_ACCESS_TOKEN \
  -t <SCENARIO_ID> \
  -e <ENV_ID> \
  -r cli
Enter fullscreen mode Exit fullscreen mode

Dans cette commande :

  • -t est l'ID du scénario de test ;
  • -e est l'ID de l'environnement ;
  • -r cli sélectionne le rapporteur console.

Pour aller plus loin :

FAQ

Quels navigateurs peuvent exporter un fichier HAR ?

Les navigateurs basés sur Chromium utilisent un flux similaire. Chrome et Edge proposent tous deux l'onglet Réseau et l'option Enregistrer tout au format HAR avec contenu.

D'autres navigateurs peuvent exporter des HAR, mais le nom de l'option peut varier.

Ma liste d'endpoints importés est énorme. Qu'est-ce qui s'est passé ?

Vous avez probablement inclus les ressources statiques. Lors de la réimportation, réglez Ressource Statique sur Exclure.

Cela élimine la plupart des images, feuilles CSS et scripts. Supprimez ensuite manuellement les éventuels appels tiers restants.

Dois-je choisir Coder en dur ou Supprimer pour la BaseURL ?

Choisissez Supprimer (Recommandé) dans la plupart des cas.

Vous pourrez définir la BaseURL dans vos variables d'environnement et basculer entre production, pré-production et local sans modifier chaque endpoint.

Ne choisissez Coder en dur que si vous voulez volontairement conserver l'URL complète dans chaque chemin.

Le fichier HAR contient-il mes jetons d'authentification ?

Oui. Un HAR enregistre les en-têtes réellement envoyés pendant la session, y compris les jetons Bearer et les cookies actifs.

Traitez-le comme un secret :

  • ne le publiez pas dans un dépôt public ;
  • ne le collez pas dans un ticket public ;
  • déplacez les identifiants vers des variables d'environnement après importation ;
  • supprimez les valeurs sensibles des exemples enregistrés.

Puis-je importer un fichier HAR depuis la ligne de commande ?

Oui :

apidog import --project <id> --format har --file <path>
Enter fullscreen mode Exit fullscreen mode

Cette commande importe un fichier HAR sans ouvrir l'application. Elle est adaptée aux importations scriptées, aux environnements serveur et aux pipelines CI.

L'interface graphique reste pratique pour une importation ponctuelle, notamment si vous voulez ajuster manuellement la gestion de la BaseURL et le filtrage des ressources statiques.

Après importation, utilisez apidog run pour rejouer les scénarios de test construits à partir de ces endpoints.

En résumé

Un fichier HAR est le pont entre le trafic que vous observez dans le navigateur et des endpoints que vous pouvez réutiliser.

Le flux recommandé est simple :

  1. capturez la session dans les Outils de développement avec Enregistrer tout au format HAR avec contenu ;
  2. importez le fichier dans Paramètres > Importer des données > Manuel ;
  3. choisissez Supprimer pour la BaseURL ;
  4. réglez Ressource Statique sur Exclure ;
  5. renommez les endpoints, paramétrez les chemins et retirez les secrets.

Vous obtenez alors une base d'endpoints fonctionnels à documenter, simuler et tester.

Prêt à transformer votre prochaine capture en véritables endpoints ? Téléchargez Apidog et essayez-le gratuitement, sans carte de crédit.

Top comments (0)