Insomnia: REST, GraphQL und gRPC APIs bequem testen und dokumentieren

Moderne Webanwendungen kommunizieren über APIs – und wer APIs entwickelt oder integriert, braucht ein zuverlässiges Werkzeug zum Testen, Debuggen und Dokumentieren dieser Schnittstellen. Insomnia hat sich als schlanke, entwicklerfreundliche Alternative zu Postman etabliert. Es unterstützt REST, GraphQL, gRPC und WebSockets in einer einheitlichen Oberfläche und verzichtet dabei auf überfrachtete Enterprise-Funktionen, die viele Teams ohnehin nicht benötigen.

Was macht Insomnia besonders?

Insomnia wurde ursprünglich als Open-Source-Projekt entwickelt und von Kong Inc. übernommen. Die Kernphilosophie ist eine saubere, aufgeräumte Benutzeroberfläche, die Entwicklern sofortigen Zugang zu den wichtigsten API-Testfunktionen gibt, ohne dass man sich durch dutzende Menüebenen kämpfen muss. Das Tool ist als Desktop-Anwendung für Windows, macOS und Linux verfügbar und kann wahlweise mit einem Kong-Account zur Cloud-Synchronisation oder vollständig lokal (im sogenannten „Scratchpad"-Modus) genutzt werden.

Insomnia unterscheidet sich von Postman vor allem durch seine Transparenz: Alle Anfragekonfigurationen werden in lesbaren JSON-Dateien gespeichert, die sich problemlos versionieren lassen. Eine Git-Sync-Funktion ermöglicht das direkte Verbinden von Collections mit Git-Repositories, was die Zusammenarbeit im Team erheblich vereinfacht.

Workspaces und Collections

Insomnia organisiert API-Projekte in Workspaces, die mehrere Collections und Environments enthalten können. Eine Collection ist eine geordnete Sammlung von Anfragen, die logisch gruppiert werden – etwa nach API-Ressource, Modul oder Feature. Ordner innerhalb einer Collection helfen dabei, auch umfangreiche APIs übersichtlich zu halten.

Jede Anfrage speichert alle relevanten Parameter: URL, HTTP-Methode, Header, Query-Parameter, Request-Body und Authentifizierungsdetails. Beim Ausführen einer Anfrage zeigt Insomnia auf der rechten Seite die vollständige Antwort inklusive Status-Code, Response-Zeit, Größe, Headers und Body. JSON-Antworten werden automatisch formatiert und können gefiltert werden.

Umgebungsvariablen flexibel nutzen

Eines der mächtigsten Features von Insomnia ist das Umgebungsmanagement. Für jede Collection lassen sich mehrere Environments anlegen – typischerweise „Development", „Staging" und „Production" – mit jeweils unterschiedlichen Werten für Variablen wie Base-URL, API-Keys oder Benutzer-Tokens. In Anfragen referenziert man Variablen mit der Syntax {{ _.VARIABLE_NAME }}, was das Wechseln zwischen Umgebungen zu einem Klick macht.

Tipp: Sensible Daten wie API-Schlüssel oder Passwörter sollte man im „Private Environment" ablegen, das nicht mit dem Team synchronisiert wird. So teilt man die Collection-Struktur, ohne versehentlich Zugangsdaten zu veröffentlichen.

Authentifizierungstypen

Insomnia unterstützt alle gängigen Authentifizierungsmethoden direkt im Anfrage-Dialog:

Tokens können über Template-Tags dynamisch aus vorherigen Antworten extrahiert werden. Damit lassen sich Login-Flows automatisieren: Zuerst wird die Login-Anfrage ausgeführt, das erhaltene Token wird extrahiert und in allen nachfolgenden Anfragen automatisch als Bearer-Token gesetzt.

GraphQL-Integration

Für GraphQL-APIs bietet Insomnia eine besonders komfortable Unterstützung. Nach dem Eingeben des Endpunkts lädt Insomnia automatisch das GraphQL-Schema per Introspection. Der Query-Editor bietet anschließend Autovervollständigung für alle verfügbaren Typen, Felder und Argumente. Variables und Headers lassen sich separat pflegen, und die Antwort wird übersichtlich neben der Anfrage dargestellt.

Für Mutations und Subscriptions funktioniert die Unterstützung ebenso vollständig. Gerade bei komplexen verschachtelten Queries ist die Schema-basierte Autovervollständigung ein enormer Zeitgewinn gegenüber dem manuellen Testen per curl.

Import und Export mit OpenAPI

Insomnia kann OpenAPI 3.0-Spezifikationen importieren und daraus automatisch eine vollständige Collection mit allen Endpunkten generieren. Umgekehrt lassen sich Collections als OpenAPI-Dokument exportieren, was die Lücke zwischen Testen und Dokumentation schließt. Auch Postman-Collections (v2.1) können importiert werden, was den Wechsel von Postman zu Insomnia erleichtert.

Achtung: Seit Insomnia 8.0 ist für die Cloud-Synchronisation ein kostenpflichtiger Account erforderlich. Wer alle Daten lokal halten möchte, sollte den Scratchpad-Modus nutzen oder auf die von der Community gepflegte Insomnia-Fork „Insomnium" ausweichen, die auf Cloud-Features verzichtet und vollständig lokal funktioniert.

Response-Analyse und Debugging

Im Response-Bereich bietet Insomnia mehrere Ansichten: Pretty (formatiert), Raw (unformatiert) und Preview (für HTML-Antworten gerendert). Für JSON-Antworten steht ein JSONPath- und XPath-Filter bereit. Die Timeline-Ansicht zeigt alle DNS-Auflösungs-, Verbindungs- und TLS-Handshake-Zeiten, was bei der Diagnose von Latenzproblemen hilft.

Für Regressionstests können Unit-Tests direkt in Insomnia geschrieben werden. Tests prüfen Statuscode, Response-Zeit oder bestimmte Werte im Response-Body und können als Teil einer CI/CD-Pipeline über die Insomnia CLI (inso run test) ausgeführt werden.

Vergleich: Insomnia vs. Postman vs. Bruno vs. HTTPie

Kriterium Insomnia Postman Bruno HTTPie
Preis (Basis) Kostenlos (lokal) Kostenlos (mit Einschränkungen) Kostenlos (Open Source) Kostenlos (CLI) / ab 99 $/Jahr (GUI)
Cloud-Sync Ab 12 $/Monat Kostenlos (bis 3 Nutzer) Nur Git (kein eigener Cloud) Ja (kostenpflichtig)
REST-Support Vollständig Vollständig Vollständig Vollständig
GraphQL Ja, mit Schema-Introspection Ja Ja Eingeschränkt
gRPC Ja Ja Nein Nein
OpenAPI-Import Ja Ja Ja Nein
Git-Integration Ja Eingeschränkt Ja (Dateibasis) Nein
Datenspeicherung Lokal oder Cloud Cloud-first Nur lokal (Dateien) Cloud

Bruno ist besonders für Teams interessant, die Anfragen als Dateien direkt im Repository neben dem Code versionieren möchten – ohne jeglichen Cloud-Dienst. Postman bleibt die Referenz in der Branche mit dem größten Ökosystem und integrierten Mock-Servern, ist aber in seiner kostenlosen Version inzwischen deutlich eingeschränkter als früher.

FAQ

Kann ich Insomnia vollständig offline und ohne Account nutzen?
Ja. Im Scratchpad-Modus, der beim Start ohne Anmeldung zugänglich ist, werden alle Daten ausschließlich lokal gespeichert. Funktionen wie Cloud-Synchronisation und Git Sync stehen dann nicht zur Verfügung, aber alle API-Testfunktionen sind vollständig nutzbar.
Unterstützt Insomnia WebSocket-Verbindungen?
Ja, seit Version 2022.6 können WebSocket-Verbindungen direkt in Insomnia aufgebaut werden. Man trägt eine ws:// oder wss:// URL ein, verbindet sich und kann Nachrichten senden und empfangen – praktisch für das Testen von Echtzeit-APIs.
Wie importiere ich eine bestehende Postman-Collection?
Über „File → Import" kann man Postman-Collections im Format v2.0 und v2.1 direkt importieren. Umgebungsvariablen und Ordnerstrukturen werden dabei übernommen. Skripte (Pre-request Scripts, Tests) aus Postman sind nicht kompatibel und müssen manuell in Insomnia-Tests umgeschrieben werden.
Kann Insomnia in einer CI/CD-Pipeline eingesetzt werden?
Ja. Mit dem Kommandozeilenwerkzeug inso lassen sich Collections exportieren und Tests automatisiert ausführen. Die Ergebnisse werden im JUnit-XML-Format ausgegeben, das von allen gängigen CI-Systemen wie GitHub Actions, GitLab CI und Jenkins unterstützt wird.