Tools für die API-Entwicklung im Überblick – Teil 2
Tools für die API-Entwicklung im Überblick – Teil 2
Nachdem Postman den „Scratch Pad“-Modus vor einiger Zeit eingestellt hat, sind Alternativen zu dem beliebten API-Client gefragt, die sich auch offline nutzen lassen. Wir setzen unsere Vorstellung von Tools fort, die uns die API-Entwicklung ohne Cloud erlauben. Diesmal geht es um Bruno und Kreya.
Im ersten Teil haben wir uns Insomnia und Hoppscotch angeschaut und einige grundlegende Überlegungen angestellt, was ein API-Client eigentlich für uns tun soll. Vor diesem Hintergrund nehmen wir uns nun Bruno und Kreya etwas gründlicher vor und werfen dann noch einen kurzen Blick auf weitere Tools, die eine Alternative zu Postman darstellen könnten.
Die gleiche Erfahrung wie Liyas Thomas 2019 (als er an einem API-Integrations-Projekt arbeitete und sein Rechner keine weitere Electron-App wie Postman verkraftete) machte auch Anoop M D. Er suchte ebenfalls eine Alternative zu Postman, da ihm die Anwendung zu aufgebläht war. Anoop wurde jedoch nicht fündig und entwickelte daraufhin Bruno [1] (benannt nach seinem Hund). Die erste Version 0.1.0 wurde im Oktober 2022 veröffentlicht [2].
Anders als Postman (und Insomnia) positioniert sich Bruno entschieden gegen Cloud-Funktionalität und setzt stattdessen auf den Austausch mittels Git. Statt der gewaltigen JSON- oder YAML-Dateien für das Speichern (bzw. Exportieren) von Collections setzt das Werkzeug dabei auf verzeichnisbasierte Speicherung von Textdateien, geschrieben in der eigens entwickelten Bru Markup Language. Seit der Version 0.8.0, veröffentlicht im Februar 2023, gilt Bruno nach eigener Einschätzung als bereit für den produktiven Einsatz [3]. Postman Collections können importiert werden, Scripting und Testing wird unterstützt und Bruno verfügt über einen Collection Runner.
Ich selbst kam bei meiner Suche nach einer Alternative zu Postman zuerst mit der Version 0.16.3 (veröffentlicht im September 2023) in Kontakt und musste dabei schmerzlich feststellen, dass Collections zwar importiert werden können, jedoch die Konfiguration für die zu verwendenden Authentifizierungsmechanismen dabei komplett verloren gehen. Authentifizierung wurde zum damaligen Zeitpunkt von Bruno schlichtweg nicht unterstützt, nicht einmal Basic Authentication.
Diese Funktionalität wurde Anfang Oktober 2023 zusammen mit Bearer Authentication im UI ergänzt. Ende Oktober folgte die stabile Version 1.0.0, die mittlerweile auch Insomnia Collections und OpenAPI-Spezifikationen importieren konnte. Und vier Monate später unterstützte Bruno mit der Version 1.10.0 auch OAuth 2.0 mit verschiedenen Grant Types. Leider funktioniert das selbst mit Version 1.37.0 aus dem Dezember 2024 nur eingeschränkt und soll (Stand Ende November 2024) auf Basis von Feedback und Erwartungen der Nutzenden grundlegend überarbeitet werden, wozu über Discord aufgerufen wurde [4].
Diese Initiative ist begrüßenswert. Auf der anderen Seite ist die stiefmütterliche Behandlung von OAuth 2.0 ernüchternd, bedenkt man, dass der Standard heutzutage essenziell für die Arbeit mit APIs ist. Ernüchtert zeigte sich auch Dana Epp, Microsoft Regional Director and Developer Security MVP, im April 2024, als er Bruno auf seine Eignung für API-Security-Testing prüfte [5]. Ergebnis: elf gemeldete Bugs (von denen bis Dezember 2024 zwei behoben wurden). Generell stellte Epp fest, dass es zu viele offene Issues und ignorierte Pull Requests gebe. Dazu zählen auch Forks, die gestartet wurden, um Bugs zu beheben und Bruno voranzubringen, aber vom Bruno-Team nicht angenommen werden. Dana Epp äußerte Bedenken hinsichtlich der Nachhaltigkeit des Projekts und beschloss, bis auf Weiteres bei Postman zu bleiben.
Nichtsdestotrotz möchte er Bruno erfolgreich sehen, weil er von dem Open-Source- und Local-first-Ansatz, wie er im Bruno-Manifest [6] beschrieben wird, begeistert ist. Diese Begeisterung teilen viele. Darin bekundet Anoop M D große Ambitionen. Es ist von nichts Geringerem als einer Revolution des von Postman und Insomnia repräsentierten Status quo die Rede. Das verhalf Bruno zu immer größerer Popularität und überall war von dem neuen API-Client die Rede.
Möglicherweise beflügelt davon, legten zuerst Anoop und später das Bruno-Team eine beeindruckende Entwicklungsgeschwindigkeit an den Tag. Oft gab es mindestens ein neues Release pro Woche. Auf Dauer konnte diese Geschwindigkeit jedoch nicht aufrechterhalten werden. So wurde aus dem Open-Source-Projekt ein Unternehmen, mittlerweile sogar mit dem ehemaligen Postman Sales Leader Ryan Reynolds als COO. Außerdem wurde im März 2024 mit der „Golden Edition“ ein erstes kommerzielles Angebot mit Closed-Source-Komponenten eingeführt, um die weitere Entwicklung von Bruno nachhaltig und mit finanzieller Sicherheit gestalten zu können. Mit einer einmaligen Zahlung von 19 Dollar war das Preismodell dabei absolut fair. Zu den exklusiven Features sollten ein OpenAPI-Designer und ein Git UI in der App sowie Unterstützung für MQTT, Socket.io, Performance und Load Testing oder Datenimport aus Dateien für Collection Runs zählen.
Inzwischen ist diese bezahlte Supporter-Version von Bruno jedoch schon wieder Geschichte. Entgegen den ursprünglichen Überlegungen und Absichten zu Open Source, Nachhaltigkeit, Privatsphäre, Freiheit und Incentives [7] wurde das Preismodell auf ein zweistufiges Subscription-Modell umgestellt. Begründet wurde das mit der Absicht, mehr Kernfunktionalität in die Open-Source-Version zu integrieren, sodass die „Golden Edition“ überflüssig werde. Ein weiterer Grund sei, dass überwiegend Organisationen die bezahlte Version von Bruno erworben hätten, sie aber für Individuen gedacht gewesen sei [8]. Ziel sei es, mit dieser Änderung dafür zu sorgen, dass Bruno als Unternehmen auch in Zukunft noch Bestand habe.
Nichtsdestotrotz...