Menu

DE

Menu

DE

Zeit sparen wie ein Pro: Bruno-Collections auf Knopfdruck

Zeit sparen wie ein Pro: Bruno-Collections auf Knopfdruck

Tim Nelles, Senior Software Developer bei denkwerk
Tim Nelles, Senior Software Developer bei denkwerk

Tim Nelles

Tim Nelles

Senior Software Developer

Senior Software Developer

denkwerk

denkwerk

Bruno ist ein quelloffener API-Client, der für effiziente Tests und Kollaboration auf Git-Level entwickelt wurde. Allerdings kann das manuelle Erstellen von API-Collections mühsam sein, insbesondere dann, wenn man in Symfony viele Routen definiert hat. Wäre doch super, wenn man Bruno-Collections automatisch aus Symfony-Routen generieren könnte ... Genau das macht das Symfony Package opctim/symfony-bruno-generator.

In diesem Beitrag schauen wir uns an, wie das Symfony-Bundle dabei hilft, API-Collections effizient zu erstellen – und so für mehr Konsistenz in Projekten sorgt und gleichzeitig wertvolle Entwicklungszeit spart.

Features

opctim/symfony-bruno-generator ist ein Symfony-Bundle, das opctim/bruno-lang verwendet. Das ist eine Framework-agnostische bru-lang-Implementierung für die programmatische Erstellung von Bruno-Collections. Das Symfony-Bundle scannt automatisch alle Controller, extrahiert Routeninformationen und generiert eine Bruno-Sammlung in einem standardisierten Format.


  • Automatische Route-Discovery: Erkennt und verarbeitet alle definierten Symfony-Routen

  • Minimale Benutzereingabe: Führt interaktiv durch die Erstellung von API-Collections

  • Anpassbare Base-URL: Erstellt automatisch ein Local-Environment in der Bruno-Collection


Um symfony-bruno-generator zu verwenden, installiert man das Paket mit Composer:

composer require --dev opctim/symfony-bruno-generator

Ohne symfony/flex muss das Bundle händisch in config/bundles.php registriert werden:

return [Opctim\BrunoGeneratorBundle\OpctimBrunoGeneratorBundle::class => ['dev' => true],


Nutzung

Dieser Befehl:

php bin/console make:bruno


  1. Scannt alle Controller im Symfony Projekt (Unterhalb des App\ Namespaces)

  2. Extrahiert verfügbare Routen und Methoden (GET, POST, etc.)

  3. Schreibt Request-Daten in eine strukturierte Bruno-Sammlung (behält die Controller-Ordnerstruktur in Bruno bei)


Bruno und Symfony: Coding im Prozess - Bildschirm Aufnahme


Interaktiver CLI-Workflow

Während der Ausführung führt der Befehl folgende Schritte aus:


  • Prüfen, ob bereits eine Bruno-Collection vorhanden ist

  • Falls nicht, anbieten, eine neue Collection zu erstellen

  • Nach einem Namen und einer Basis-URL für die Collection fragen

  • Erkannte Controller auflisten

  • Abfragen, für welche Requests eine Generierung erfolgen soll


Beispiel-Output:


Found bruno collection "my_collection" at /bruno

Do you want to generate 5 requests for the UserController? (yes/no) [yes]:
Generated
 - GET {{baseUrl}}/api/users -> bruno/user/get_api_users.bru
 - POST {{baseUrl}}/api/users -> bruno/user/post_api_users.bru


Zukünftige Verbesserungen

Während die aktuelle Version effizient Routen extrahiert und nur einfache Requests generiert, könnten zukünftige Verbesserungen Folgendes umfassen:


  • Automatische Erkennung von Request Body Strukturen

  • Extraktion von Abfrageparametern für GET-Anfragen

  • Unterstützung für API-Plattform-Metadaten

  • Benutzerdefinierte Header-Konfigurationen für die Authentifizierung

 

Fazit

Mit opctim/symfony-bruno-generator entfällt die manuelle Pflege der API-Collection. Das Paket ermöglicht es Symfony-Entwicklern, Bruno-Requests mühelos zu generieren – konsistent und zeitsparend.

Wer den API-Entwicklungsprozess effizienter gestalten möchte, sollte einen Blick auf das Paket werfen. Für mehr Kontrolle über Bruno-Collections bietet sich außerdem opctim/bruno-lang an.

https://github.com/opctim/symfony-bruno-generator
https://github.com/opctim/bruno-lang

🚀 Viel Spaß beim Generieren!

Diesen Artikel teilen

Letzte Sparks