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

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.

Verwandte Leistung

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!

Verwandte Leistung

Diesen Artikel teilen

Letzte Sparks