Problem
Bei der Entwicklung einer Anwendung mit einer REST-Schnittstelle möchte man diese direkt ausprobieren. Natürlich ist Postman schon installiert und in wenigen Sekunden ist der gewünschte Request auch schon auf dem Weg. Spielt man dieses Szenario nun weiter, existieren schnell eine ganze Reihe an Postman Requests, die meistens zu einer Collection zusammengefasst werden. Möchte man diese Collection dann dem ganzen Team zur Verfügung stellen, kann man entweder für das Postman-Workspaces-Feature bezahlen oder man exportiert die Collection und packt sie unter Versionskontrolle. Die Kolleg*innen können dann die Collection auschecken und in ihren Postman importieren. Dieser manuelle Schritt muss bei jeder Änderung an der Schnittstelle oder der Environment-Definition von jedem Teammitglied erneut durchführt werden, was auf Dauer sehr nervig und fehleranfällig ist.
Lösung
HTTP Request Files!
Ein Request File ist eine Datei, die eine oder mehrere Request-Beschreibungen enthält, welche direkt aus der Datei heraus ausgeführt werden können. Im Vergleich zu Postman Collections können Request Files somit direkt eingecheckt werden und es Bedarf keines speziellen Imports/Exports.
Analog zu Postman bieten Request Files die Möglichkeit, Teile eines Requests mittels Variablen und verschiedenen Environments (z. B. local, stage, prod) zu parametrisieren (siehe {{host}} Variable im Beispiel). Ein weiteres Killer-Feature sind die Request- und Response-Handler, welche in JavaScript geschrieben werden. Beispielsweise kann damit ein Access-Token aus einer Autentifizierungsresponse ausgelesen, einer globalen Variable zugewiesen und in weiteren Requests verwendet werden.
Neben IntelliJ unterstützt auch der Client httpYac Request Files, wodurch auch VS Code- und Kommandozeilen-User Request Files verwenden können!
Mit der httpYac CLI lassen sich Request Files sogar in CI-Pipelines integrieren.
Diese und alle weiteren Features können in den unten verlinkten Dokumentationen von IntelliJ und httpYac nachgelesen werden.
Beispiel
Weiterführende Aspekte
- Postman Workspaces: https://www.postman.com/product/workspaces/
- IntelliJ HTTP Client Doku: https://www.jetbrains.com/help/idea/http-client-in-product-code-editor.html
- httpYac Client: https://httpyac.github.io/
Lust, das nächste ToiletPaper zu schreiben? Jetzt bei jambit bewerben!