DEV Community

Cover image for Qu'est-ce que httpYac ?
Antoine Laurent
Antoine Laurent

Posted on • Originally published at apidog.com

Qu'est-ce que httpYac ?

Si vous avez cherché httpYac, vous voulez probablement envoyer des requêtes HTTP depuis des fichiers texte brut, les versionner dans Git, les exécuter dans VS Code, puis les rejouer en CI. httpYac répond précisément à ce besoin : c’est un exécuteur de fichiers .http/.rest disponible comme extension VS Code et comme CLI Node.js. Ce guide montre comment l’utiliser concrètement, comment structurer vos fichiers, comment lancer des assertions en CI, et quand passer à une approche GUI plus adaptée aux équipes. Pour replacer l’outil dans une stratégie plus large, consultez aussi notre guide de test d’API.

Essayez Apidog aujourd’hui

Qu’est-ce que httpYac ?

httpYac est un client HTTP open-source basé sur le format de fichier .http. Vous écrivez vos requêtes en texte brut, puis vous les exécutez depuis l’éditeur ou depuis un terminal. Le projet est disponible sur GitHub et sa documentation est publiée sur httpyac.github.io.

Le principe est simple :

  1. vous placez vos requêtes HTTP dans le dépôt ;
  2. vous les versionnez avec le code applicatif ;
  3. vous les relisez dans les pull requests ;
  4. vous les exécutez localement ou en CI avec le même fichier.

httpYac se compose de deux parties principales :

  • Extension VS Code : ajoute un bouton Send Request, affiche les réponses et permet de changer d’environnement directement dans l’éditeur.
  • CLI Node.js : exécute les mêmes fichiers .http ou .rest sans interface graphique, ce qui permet de les intégrer dans GitHub Actions, GitLab CI, Jenkins ou tout autre pipeline.

Comme les deux interfaces lisent les mêmes fichiers, il n’y a pas d’export intermédiaire. Ce que vous commitez est ce qui s’exécute.

Créer un fichier .http

Un fichier .http contient une ou plusieurs requêtes séparées par ###.

### Get a user
GET https://api.example.com/users/42
Accept: application/json

### Create a user
# @name createUser
POST https://api.example.com/users
Content-Type: application/json

{
  "name": "Ada Lovelace",
  "email": "ada@example.com"
}

### Use a value from the previous response
GET https://api.example.com/users/{{createUser.response.body.$.id}}
Authorization: Bearer {{token}}
Enter fullscreen mode Exit fullscreen mode

Dans cet exemple :

  • ### sépare les requêtes ;
  • # @name createUser donne un nom à une requête ;
  • {{...}} injecte des variables ou des valeurs extraites d’une réponse précédente ;
  • {{createUser.response.body.$.id}} récupère l’id retourné par la requête createUser.

Ce format est proche de celui de l’extension REST Client. Si vous utilisez déjà des fichiers .http, la migration vers httpYac demande généralement peu d’ajustements.

Gérer les variables et les environnements

httpYac peut lire des variables depuis plusieurs sources :

  • fichiers .env ;
  • fichier http-client.env.json ;
  • variables définies directement dans le fichier .http ;
  • variables d’environnement fournies par le système ou la CI.

Exemple minimal :

@host = https://api.staging.example.com

### Login
# @name login
POST {{host}}/auth/login
Content-Type: application/json

{ "user": "{{USERNAME}}", "pass": "{{PASSWORD}}" }
Enter fullscreen mode Exit fullscreen mode

En pratique :

  • gardez les valeurs non sensibles dans le fichier .http ;
  • placez les secrets dans un fichier .env non versionné ;
  • injectez les mêmes secrets en CI via les variables sécurisées du pipeline.

Exemple de .env local :

USERNAME=demo@example.com
PASSWORD=super-secret
Enter fullscreen mode Exit fullscreen mode

Exemple d’organisation possible :

api/
  users.http
  auth.http
.env              # local, non commité
http-client.env.json
Enter fullscreen mode Exit fullscreen mode

Ajoutez .env à votre .gitignore :

.env
Enter fullscreen mode Exit fullscreen mode

Ajouter des scripts et des assertions

httpYac permet d’ajouter du JavaScript pour préparer une requête ou vérifier une réponse. C’est utile pour :

  • vérifier un code HTTP ;
  • extraire un token ;
  • chaîner plusieurs appels ;
  • valider une propriété du corps JSON.

Exemple avec login et capture de token :

### Login and capture token
# @name login
POST {{host}}/auth/login
Content-Type: application/json

{ "user": "{{USERNAME}}", "pass": "{{PASSWORD}}" }

{{
  // post-request script
  test("status is 200", () => {
    client.assert.strictEqual(response.statusCode, 200);
  });

  exports.token = response.parsedBody.token;
}}
Enter fullscreen mode Exit fullscreen mode

Vous pouvez ensuite réutiliser {{token}} dans une autre requête :

### Get current user
GET {{host}}/me
Authorization: Bearer {{token}}
Enter fullscreen mode Exit fullscreen mode

Ce modèle convient bien pour des tests API ciblés : authentification, création de ressource, récupération, validation, puis nettoyage si nécessaire.

Exécuter httpYac localement

Installez la CLI :

npm install -g httpyac
Enter fullscreen mode Exit fullscreen mode

Exécutez un fichier :

httpyac send api/users.http
Enter fullscreen mode Exit fullscreen mode

Exécutez toutes les requêtes d’un dossier :

httpyac send --all "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

Exécutez avec un environnement :

httpyac send --all --env staging "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

Si une assertion échoue, httpYac retourne un code de sortie non nul. C’est ce comportement qui permet de faire échouer une build CI.

Exécuter httpYac en CI

La CLI sert de pont entre les tests locaux et le pipeline. Vous validez vos fichiers dans VS Code, puis vous exécutez les mêmes fichiers en CI.

Exemple générique :

npm install -g httpyac
httpyac send --all --env staging "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

Exemple de workflow GitHub Actions :

name: API checks

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  httpyac:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install httpYac
        run: npm install -g httpyac

      - name: Run API requests
        env:
          USERNAME: ${{ secrets.API_USERNAME }}
          PASSWORD: ${{ secrets.API_PASSWORD }}
        run: httpyac send --all --env staging "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

Bonnes pratiques :

  • exécutez les tests API sur les pull requests ;
  • stockez les secrets dans le gestionnaire de secrets de votre CI ;
  • gardez les fichiers .http courts et orientés scénario ;
  • séparez les requêtes exploratoires des vérifications destinées à bloquer une fusion.

Quand utiliser httpYac ?

httpYac est particulièrement adapté si votre équipe préfère les workflows proches du code.

Situation Pourquoi httpYac convient
Vous travaillez dans VS Code L’extension garde les requêtes à côté du code, sans changement de contexte
Vous voulez des requêtes dans Git Les fichiers texte se comparent facilement dans les pull requests
Votre équipe est à l’aise avec le code Les scripts, variables et fichiers .env s’intègrent naturellement au workflow développeur
Vous avez besoin de vérifications ciblées L’outil reste léger et rapide à ajouter à un dépôt
Vous utilisez déjà REST Client Le format .http facilite la transition

httpYac est moins adapté si :

  • des profils non développeurs doivent créer ou modifier les tests ;
  • vous avez besoin d’une vue visuelle de grandes collections ;
  • vous voulez partager des environnements sans gérer de fichiers ;
  • vous avez besoin de mocking, de documentation et de rapports avancés dans le même espace ;
  • votre suite de tests devient difficile à maintenir uniquement en texte brut.

Dans ces cas, une plateforme orientée GUI peut être plus pratique.

httpYac vs une plateforme GUI et CI

httpYac est un exécuteur de fichiers texte. Apidog suit une approche différente : une plateforme API visuelle qui peut aussi s’exécuter en CI.

Point important : Apidog n’exécute pas et n’analyse pas nativement les fichiers .http. Si votre source de vérité est un dossier de fichiers .http, httpYac est l’outil direct pour les lancer.

Capacité httpYac Apidog
Source des requêtes Fichiers texte brut .http/.rest dans Git Requêtes visuelles dans un espace de travail, avec import OpenAPI
Interface d’édition Texte dans VS Code ou un autre éditeur Générateur visuel avec champs de formulaire et connaissance du schéma
Variables et environnements Fichiers .env, JSON et variables en ligne Environnements partagés et synchronisés pour l’équipe
Assertions JavaScript dans les scripts de requête Assertions visuelles et scripting
Exécution en CI httpyac send apidog run
Mocking et documentation Non intégré Serveur de mock intégré et documentation générée
Idéal pour Développeurs qui veulent des fichiers texte natifs de Git Équipes qui veulent conception, tests, mocking et documentation au même endroit

Si vous préférez construire les requêtes visuellement, Apidog permet d’organiser les scénarios dans un espace de travail partagé, puis de les exécuter en CI avec apidog run. La référence apidog run détaille la commande, les options d’environnement et les rapporteurs.

Apidog inclut aussi du mocking et de la documentation dans le même espace de travail. Si le mocking est un besoin important, consultez notre sélection des outils de mocking de points de terminaison REST.

En résumé :

  • choisissez httpYac si votre workflow est “fichiers dans Git, exécution dans l’éditeur, relecture en CI” ;
  • choisissez Apidog si vous voulez un espace de travail visuel, des environnements gérés, du mocking et de la documentation en plus de l’exécution CI ;
  • utilisez les deux si vous voulez garder httpYac pour les vérifications locales rapides et Apidog comme source de vérité d’équipe.

Foire aux questions

httpYac est-il gratuit ?

Oui. httpYac est open source sous licence MIT. L’extension VS Code et la CLI sont gratuites à installer et à utiliser. Il n’est pas nécessaire de créer un compte pour exécuter des requêtes localement ou en CI.

En quoi httpYac est-il différent de l’extension REST Client ?

Les deux utilisent le format .http, donc les fichiers sont largement portables. httpYac ajoute une CLI autonome pour les exécutions sans interface graphique, une meilleure intégration CI, une gestion plus large des environnements et un modèle de scripting plus riche.

Si vous envoyez uniquement des requêtes depuis VS Code, les deux peuvent convenir. Si vous devez exécuter les mêmes fichiers dans un pipeline, la CLI de httpYac devient le principal avantage. Pour comparer d’autres outils côté éditeur, consultez notre liste des plugins VS Code pour le test d’API.

httpYac peut-il remplacer Postman ?

Pour un développeur qui veut des requêtes texte dans Git et des exécutions CI, httpYac couvre une grande partie des usages courants : envoyer des requêtes, gérer des variables, chaîner des appels et écrire des assertions.

Il ne remplace pas directement les fonctionnalités orientées plateforme comme l’interface graphique, les collections partagées ou le mocking intégré. Si votre équipe a besoin de ces éléments, une solution comme Apidog peut être plus adaptée. Vous pouvez aussi comparer d’autres options dans notre aperçu des clients de test d’API.

httpYac prend-il en charge GraphQL et gRPC ?

httpYac gère les requêtes GraphQL et plusieurs protocoles au-delà du REST, y compris certains cas de streaming. Consultez la documentation officielle pour vérifier la liste actuelle des protocoles pris en charge, car elle peut évoluer selon les versions.

Pour REST, le format .http couvre les verbes courants, les en-têtes, les corps de requête et les flux d’authentification classiques.

Conclusion

httpYac est un bon choix si vous voulez envoyer des requêtes HTTP depuis des fichiers texte, les versionner avec votre code, les exécuter dans VS Code et les rejouer en CI sans export séparé. Son modèle natif de Git, sa CLI gratuite et son scripting en font un outil efficace pour les équipes très orientées développeurs.

La limite est claire : tout repose sur des fichiers, du texte et du code. Si votre équipe préfère construire les requêtes visuellement, partager des environnements, simuler des points de terminaison et générer de la documentation dans un seul espace, Apidog couvre mieux ce besoin. Vous pouvez télécharger Apidog et exécuter vos scénarios avec apidog run, ou garder httpYac pour les vérifications locales rapides et utiliser Apidog comme source de vérité d’équipe.

Top comments (0)