Die meisten APIs, mit denen man heute bei der Webentwicklung zu tun hat, sind RESTful und bisher habe ich mich damit beholfen, die Anfänge in PHP und curl zu entwickeln, genügend Beispielcode habe ich in diversen Projekten rumfliegen.
Müssen dann aber komplexere JSON-Strukturen im Body eines POST-Request übergeben und oebendrein auch noch Dateien mit übergeben, kämpft man schon mal mehr mit dem Code als sich mit der API zu beschäftigen. In solchen Situationen können API-Tools für den Mac eine große Hilfe sein.
In der Vergangenheit hatte ich bereits mal Postman und Insomnia ausprobiert. Beide Male nur mit einfachen Beispielen und damals auch in erster Linie um mich mal mit den Tools zu beschäftigen. Heute stand aber tatsächlich oben beschriebene Aufgabe an: JSON-Data per POST im Body übergeben, darunter eine Datei, als Base64-Encoded Parameter.
Dieses Mal habe ich mir einen weiteren Client angeschaut: Paw. Nachdem ich bei diesem Client irgendwann herausgefunden habe, dass man bei den Werten ein Kontextmenü aufrufen kann, taten sich dort sehr einfache Möglichkeiten auf, um gerade die Datei Base64-Encoded dort einzufügen: erst im Finder die Datei Kopieren und dann wird mit dem Kontextmenü eben der Base64-Encoder ausgewählt und die Datei eingefügt. Dabei taucht dann nirgends im Interface der tatsächliche Quelltext auf – also nur, wenn man es explizit im Request selbst anschaut. D.h. man kann jederzeit im Editor noch sehen, dass es sich bei dem Wert um Base64 der Datei handelt, die dort auch nur mit dem Namen angezeigt wird.
Bei den beiden anderen Clients konnte ich das JSON zwar auch einfach per Copy & Paste aus Paw übernehmen, aber die einfache Art und Weise, wie ich die Base64-Encoded-Datei hätte einfügen können, habe ich dort nicht gefunden.
Mein erster Eindruck dieser drei Clients spricht also klar für Paw. Der große Haken ist nur, dass er (inklusive Steuern) gut 63 € kostet, während die anderen beiden Clients kostenlos sind. Alle drei bieten auch irgendwelche Team-Funktionalitäten an, die ich nicht ausprobiert habe. Auch sonst können alle Clients Code generieren, wobei mir Paw dabei auch die meisten Optionen zu haben schien.
So lange ich also nur mit recht einfachen APIs zu tun habe, werde ich im Moment wohl noch auf die Anschaffung von Paw verzichten. Das kann sich aber evtl. bald ändern, da ein weiteres Projekt mit der Anbindung einiger APIs ansteht. Und schön ist dabei auch, dass man bei Paw die Dateien verschlüsselt abspeichern und so mit in das Projekt einchecken kann. So kann man auch schnell man prüfen, ob die Beispielanfragen noch alle funktionieren – und das auch durch Projektmanager oder technisch versierte Kunden überprüfen lassen.