DEV Community

Cover image for Was ist httpYac?
Emre Demir
Emre Demir

Posted on • Originally published at apidog.com

Was ist httpYac?

Wenn Sie nach httpYac gesucht haben, möchten Sie wahrscheinlich HTTP-Anfragen als Klartextdateien versionieren, in VS Code ausführen und in CI wiederholen. httpYac löst genau diesen Workflow: Sie schreiben .http- oder .rest-Dateien, senden sie lokal per VS-Code-Erweiterung und führen dieselben Dateien später per Node.js-CLI in der Pipeline aus. Dieser Leitfaden zeigt die praktische Einrichtung, typische Datei-Strukturen, Variablen, Assertions und wann ein GUI-Workflow wie Apidog sinnvoller ist. Für Grundlagen siehe den API-Testleitfaden.

Apidog noch heute ausprobieren

Was httpYac ist

httpYac ist ein Open-Source-HTTP-Client für das .http-Dateiformat. Sie schreiben Requests als Text, speichern sie im Repository und senden sie entweder direkt im Editor oder per Terminal. Das Projekt liegt auf GitHub, die Dokumentation finden Sie unter httpyac.github.io.

Der Workflow ist Git-nativ:

  1. Requests liegen neben dem Anwendungscode.
  2. Änderungen sind in Pull Requests sichtbar.
  3. Entwickler führen dieselben Dateien lokal aus.
  4. CI führt dieselben Dateien headless aus.

httpYac besteht praktisch aus zwei Bausteinen:

  • VS-Code-Erweiterung: CodeLens „Send Request“, Response-Preview, Umgebungswechsel im Editor.
  • CLI httpyac: Ausführung derselben .http-Dateien im Terminal oder in CI.

Dadurch entfällt ein Export-Schritt. Was Sie committen, ist das, was später ausgeführt wird.

Installation und Projektstruktur

Installieren Sie die CLI global oder nutzen Sie sie über Ihr Node-Setup:

npm install -g httpyac
Enter fullscreen mode Exit fullscreen mode

Eine einfache Struktur im Repository kann so aussehen:

api/
  users.http
  auth.http
.env
.gitignore
Enter fullscreen mode Exit fullscreen mode

Beispiel für .gitignore:

.env
Enter fullscreen mode Exit fullscreen mode

So bleiben lokale Zugangsdaten außerhalb von Git, während die Request-Dateien selbst versioniert werden.

Das .http-Dateiformat

Eine .http-Datei enthält mehrere Requests, getrennt durch ###.

### 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

Wichtig sind drei Elemente:

  • ### trennt einzelne Requests.
  • # @name createUser benennt einen Request.
  • {{...}} ersetzt Variablen oder Werte aus vorherigen Responses.

Das Format ist weitgehend kompatibel mit Dateien, die auch von der REST Client-Erweiterung genutzt werden.

Variablen und Umgebungen verwenden

httpYac kann Variablen aus mehreren Quellen lesen, zum Beispiel aus .env, http-client.env.json oder Inline-Definitionen in der Request-Datei.

Ein minimales Beispiel:

@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

Lokale .env:

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

Praktische Regel:

  • Nicht geheim: direkt in .http oder Umgebungsdateien, die committet werden dürfen.
  • Geheim: .env, CI-Secrets oder Pipeline-Variablen.
  • Umgebungsabhängig: staging, production, local getrennt halten.

So können Sie denselben Request gegen unterschiedliche Systeme ausführen, ohne die Datei selbst zu ändern.

Request-Ketten bauen

Ein häufiger API-Test-Flow ist:

  1. Login ausführen.
  2. Token aus der Response speichern.
  3. Folge-Requests mit diesem Token senden.

Mit httpYac können Sie solche Ketten direkt in einer Datei abbilden:

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

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

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

### Get current user
GET {{host}}/me
Authorization: Bearer {{login.response.body.$.token}}
Accept: application/json
Enter fullscreen mode Exit fullscreen mode

Damit wird der Token aus der Login-Response im nächsten Request verwendet.

Skripting und Assertions

httpYac unterstützt JavaScript-Blöcke, um vor oder nach einem Request Logik auszuführen. Das eignet sich für Assertions, dynamische Daten oder das Speichern von Werten.

### 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

Das exportierte token kann anschließend wiederverwendet werden:

### Fetch profile
GET {{host}}/profile
Authorization: Bearer {{token}}
Enter fullscreen mode Exit fullscreen mode

Typische Assertions sind:

client.assert.strictEqual(response.statusCode, 200);
client.assert.ok(response.parsedBody.id);
client.assert.strictEqual(response.parsedBody.email, "ada@example.com");
Enter fullscreen mode Exit fullscreen mode

Damit wird aus einer manuellen Anfrage ein wiederholbarer API-Check.

httpYac lokal ausführen

Einzelne Datei ausführen:

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

Alle Requests in einem Ordner ausführen:

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

Mit Umgebung ausführen:

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

Wenn eine Assertion fehlschlägt, beendet sich httpYac mit einem Exit-Code ungleich 0. Genau das braucht CI, um den Build fehlschlagen zu lassen.

httpYac in CI ausführen

Für CI installieren Sie die CLI und führen dieselben Dateien aus, die lokal in VS Code genutzt werden.

Beispiel für 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 checks
        env:
          USERNAME: ${{ secrets.API_USERNAME }}
          PASSWORD: ${{ secrets.API_PASSWORD }}
        run: httpyac send --all --env staging "api/**/*.http"
Enter fullscreen mode Exit fullscreen mode

Damit wird jeder Pull Request gegen die API geprüft. Schlägt ein Request oder eine Assertion fehl, schlägt auch der CI-Job fehl.

Wenn Sie zusätzlich mit Apidog-CLI-Läufen arbeiten, finden Sie die entsprechende Referenz unter Apidog CLI.

Wann httpYac gut passt

httpYac ist besonders sinnvoll, wenn Ihr Team bewusst mit Textdateien arbeiten möchte.

Situation Warum httpYac passt
Sie arbeiten in VS Code Requests bleiben direkt neben dem Code
Sie möchten API-Checks in Git versionieren .http-Dateien lassen sich gut diffen und reviewen
Ihr Team ist entwicklerzentriert Skripting, Variablen und .env-Dateien passen zu Code-Workflows
Sie brauchen gezielte Smoke- oder Regression-Checks Schnell eingerichtet, ohne komplette Plattform einzuführen
Sie nutzen bereits REST Client-Dateien Das gemeinsame Format erleichtert den Umstieg

Weniger passend ist httpYac, wenn:

  • Nicht-Entwickler Requests regelmäßig bearbeiten müssen.
  • Sie große Collections visuell organisieren möchten.
  • Umgebungen zentral im Team verwaltet werden sollen.
  • Mocking, Dokumentation und Reporting in einem gemeinsamen Workspace benötigt werden.

In diesen Fällen wird der reine Textdatei-Workflow schnell unübersichtlich.

httpYac vs. GUI- und CI-Plattform

httpYac ist ein Runner für Textdateien. Apidog verfolgt ein anderes Modell: eine visuelle API-Plattform mit CI-Ausführung. Wichtig: Apidog führt .http-Dateien nicht nativ aus und parst sie nicht als primäre Quelle. Wenn Ihre Quelle der Wahrheit ein Ordner mit .http-Dateien ist, ist httpYac dafür der direkte Weg.

Funktion httpYac Apidog
Anfragequelle .http/.rest-Dateien in Git Visuelle Requests im Workspace plus OpenAPI-Import
Bearbeitung Text in VS Code oder einem Editor Visueller Builder mit Formularfeldern und Schema-Kontext
Variablen und Umgebungen .env, JSON-Dateien, Inline-Variablen Geteilte, verwaltete Umgebungen mit Team-Synchronisierung
Assertions JavaScript in Request-Skripten Visuelle Assertions plus Skripting
CI-Ausführung httpyac send apidog run
Mocking und Dokumentation Nicht integriert Mock-Server und automatisch generierte Dokumentation integriert
Am besten geeignet für Entwicklerteams mit Git-nativem Textdatei-Workflow Teams, die Design, Tests, Mocking und Dokumentation bündeln möchten

Wenn Sie visuell arbeiten möchten, können Sie in Apidog Requests erstellen, organisieren und anschließend per apidog run in CI ausführen. Die Apidog-Run-Referenz erklärt Befehl, Umgebungsoptionen und Reporter. Für Mocking-Szenarien siehe außerdem die Übersicht zu REST-Endpoint-Mocking-Tools.

Kurz gesagt:

  • httpYac gewinnt, wenn Ihre Wahrheit .http-Dateien in Git sind.
  • Apidog gewinnt, wenn Ihr Team einen visuellen Workspace, verwaltete Umgebungen, Mocking und Dokumentation neben CI-Läufen braucht.
  • Manche Teams nutzen beides: httpYac für schnelle lokale Checks, Apidog als gemeinsame Team-Plattform.

Häufig gestellte Fragen

Ist httpYac kostenlos?

Ja. httpYac ist Open Source unter der MIT-Lizenz. Die VS-Code-Erweiterung und die CLI können kostenlos installiert und genutzt werden. Für lokale Requests oder CI-Läufe ist kein Konto erforderlich.

Wie unterscheidet sich httpYac von der REST Client-Erweiterung?

Beide nutzen das .http-Format, daher sind viele Dateien weitgehend portabel. httpYac ergänzt vor allem eine eigenständige CLI für Headless- und CI-Läufe, flexiblere Umgebungsbehandlung sowie umfangreicheres Skripting und Assertions. Wenn Sie Requests nur in VS Code senden, reichen beide oft aus. Wenn dieselben Dateien in CI laufen sollen, ist die httpYac-CLI der entscheidende Unterschied. Weitere Editor-Tools finden Sie in der Liste der VS-Code-Plugins für API-Tests.

Kann httpYac Postman ersetzen?

Für Entwickler, die Klartext-Requests in Git speichern und in CI ausführen möchten, kann httpYac viele Postman-Workflows abdecken. Was fehlt, sind GUI, geteilte Collections, zentrale Team-Umgebungen und integriertes Mocking. Wenn Ihr Team diese Funktionen benötigt, passt eine Plattform wie Apidog besser. Weitere Optionen finden Sie in der Übersicht der API-Test-Clients.

Unterstützt httpYac GraphQL und gRPC?

httpYac unterstützt GraphQL-Requests und mehrere Protokolle über klassisches REST hinaus, einschließlich einiger Streaming-Fälle. Prüfen Sie für die aktuelle Protokollliste die offizielle Dokumentation, da sich die Unterstützung je nach Version weiterentwickeln kann. Für REST deckt das .http-Format die üblichen Methoden, Header, Bodies und Authentifizierungsabläufe ab.

Fazit

httpYac ist ideal, wenn Sie HTTP-Requests als Klartextdateien in Git speichern, in VS Code ausführen und ohne Export-Schritt in CI wiederholen möchten. Das Tool ist leichtgewichtig, entwicklerfreundlich und passt gut zu Teams, die API-Checks wie Code behandeln.

Der Kompromiss: Der Workflow setzt Datei-Disziplin, Skripting und Entwickler-Know-how voraus. Wenn Sie stattdessen Requests visuell bauen, Umgebungen im Team verwalten, Endpunkte mocken und Dokumentation automatisch erzeugen möchten, bietet Apidog dafür einen gemeinsamen Workspace. Sie können Apidog herunterladen, CI-Läufe mit apidog run ausführen oder httpYac für schnelle lokale Prüfungen behalten und Apidog als Team-Quelle der Wahrheit nutzen.

Top comments (0)