{"id":3063,"date":"2017-01-15T21:48:13","date_gmt":"2017-01-15T20:48:13","guid":{"rendered":"http:\/\/olbertz.de\/blog\/?p=3063"},"modified":"2017-01-15T21:48:13","modified_gmt":"2017-01-15T20:48:13","slug":"api-tools-fuer-den-mac","status":"publish","type":"post","link":"https:\/\/olbertz.de\/blog\/2017\/01\/15\/api-tools-fuer-den-mac\/","title":{"rendered":"API-Tools f&#252;r den Mac"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/olbertz.de\/blog\/wp-content\/uploads\/2017\/01\/Bildschirmfoto-2017-01-15-um-21.21.29-620x308.png\" alt=\"\" width=\"620\" height=\"308\" class=\"aligncenter size-large wp-image-3064\" srcset=\"https:\/\/olbertz.de\/blog\/wp-content\/uploads\/2017\/01\/Bildschirmfoto-2017-01-15-um-21.21.29-620x308.png 620w, https:\/\/olbertz.de\/blog\/wp-content\/uploads\/2017\/01\/Bildschirmfoto-2017-01-15-um-21.21.29-440x218.png 440w, https:\/\/olbertz.de\/blog\/wp-content\/uploads\/2017\/01\/Bildschirmfoto-2017-01-15-um-21.21.29-768x381.png 768w\" sizes=\"auto, (max-width: 620px) 100vw, 620px\" \/><\/p>\n<p>\nDie meisten APIs, mit denen man heute bei der Webentwicklung zu tun hat, sind <a href=\"https:\/\/de.wikipedia.org\/wiki\/Representational_State_Transfer\">RESTful<\/a> und bisher habe ich mich damit beholfen, die Anf&#228;nge in PHP und curl zu entwickeln, gen&#252;gend Beispielcode habe ich in diversen Projekten rumfliegen.\n<\/p>\n<p>\nM&#252;ssen dann aber komplexere JSON-Strukturen im Body eines POST-Request &#252;bergeben und oebendrein auch noch Dateien mit &#252;bergeben, k&#228;mpft man schon mal mehr mit dem Code als sich mit der API zu besch&#228;ftigen. In solchen Situationen k&#246;nnen API-Tools f&#252;r den Mac eine gro&#223;e Hilfe sein.\n<\/p>\n<p>\nIn der Vergangenheit hatte ich bereits mal <a href=\"https:\/\/www.getpostman.com\">Postman<\/a> und <a href=\"https:\/\/insomnia.rest\">Insomnia<\/a> ausprobiert. Beide Male nur mit einfachen Beispielen und damals auch in erster Linie um mich mal mit den Tools zu besch&#228;ftigen. Heute stand aber tats&#228;chlich oben beschriebene Aufgabe an: JSON-Data per POST im Body &#252;bergeben, darunter eine Datei, als Base64-Encoded Parameter.\n<\/p>\n<p>\nDieses Mal habe ich mir einen weiteren Client angeschaut: <a href=\"https:\/\/paw.cloud\">Paw<\/a>. Nachdem ich bei diesem Client irgendwann herausgefunden habe, dass man bei den Werten ein Kontextmen&#252; aufrufen kann, taten sich dort sehr einfache M&#246;glichkeiten auf, um gerade die Datei Base64-Encoded dort einzuf&#252;gen: erst im Finder die Datei Kopieren und dann wird mit dem Kontextmen&#252; eben der Base64-Encoder ausgew&#228;hlt und die Datei eingef&#252;gt. Dabei taucht dann nirgends im Interface der tats&#228;chliche Quelltext auf &#8211; 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.\n<\/p>\n<p>\nBei den beiden anderen Clients konnte ich das JSON zwar auch einfach per Copy &#038; Paste aus Paw &#252;bernehmen, aber die einfache Art und Weise, wie ich die Base64-Encoded-Datei h&#228;tte einf&#252;gen k&#246;nnen, habe ich dort nicht gefunden.\n<\/p>\n<p>\nMein erster Eindruck dieser drei Clients spricht also klar f&#252;r Paw. Der gro&#223;e Haken ist nur, dass er (inklusive Steuern) gut 63 \u20ac kostet, w&#228;hrend die anderen beiden Clients kostenlos sind. Alle drei bieten auch irgendwelche Team-Funktionalit&#228;ten an, die ich nicht ausprobiert habe. Auch sonst k&#246;nnen alle Clients Code generieren, wobei mir Paw dabei auch die meisten Optionen zu haben schien.\n<\/p>\n<p>\nSo 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 &#228;ndern, da ein weiteres Projekt mit der Anbindung einiger APIs ansteht. Und sch&#246;n ist dabei auch, dass man bei Paw die Dateien verschl&#252;sselt abspeichern und so mit in das Projekt einchecken kann. So kann man auch schnell man pr&#252;fen, ob die Beispielanfragen noch alle funktionieren &#8211; und das auch durch Projektmanager oder technisch versierte Kunden &#252;berpr&#252;fen lassen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die meisten APIs, mit denen man heute bei der Webentwicklung zu tun hat, sind RESTful und bisher habe ich mich damit beholfen, die Anf&#228;nge in PHP und curl zu entwickeln, gen&#252;gend Beispielcode habe ich in diversen Projekten rumfliegen. M&#252;ssen dann &hellip; <a href=\"https:\/\/olbertz.de\/blog\/2017\/01\/15\/api-tools-fuer-den-mac\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":3064,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[74],"tags":[],"class_list":["post-3063","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technik"],"_links":{"self":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/comments?post=3063"}],"version-history":[{"count":1,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3063\/revisions"}],"predecessor-version":[{"id":3065,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/posts\/3063\/revisions\/3065"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/media\/3064"}],"wp:attachment":[{"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/media?parent=3063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/categories?post=3063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/olbertz.de\/blog\/wp-json\/wp\/v2\/tags?post=3063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}