Ich hatte folgendes Problem: Wie kann ich gescheit sämtliche Pfostierungen von mir in einer bestimmten Lassmich Gemeinschaft als HTML Format runterladen? Nachdem ich geguckt habe und nichts gefunden habe, womit das geht habe ich mir halt gedacht “Dann mache ich es halt selber”. Habe jetzt ein nicht besonders schönes, aber demnächst auch funktionales Skript, mit dem ich genau das tun kann. Das war das erste mal, wo ich auch nur irgendwas mit externen APIs gemacht habe und es ist ein ziemlich kühles Gefühl, wenn man dann tatsächlich versteht, was man da macht und es sogar funktioniert (und nachdem man verstanden hat, wie die Lassmich API funktioniert, war die Dokumentation auch sehr gut verständlich).
Sobald das ganze ein bisschen Ausgearbeitet ist werde ich das dann auch veröffentlichen.
Bei dem Begriff “externe API” kriege ich Puls - meine Erfahrung im beruflichen Umfeld:
- Antwortkörper entspricht nicht der Spezifikation
- Bei Fehlern ein HTTP Status 200 mit zusätzlichem Status im Antwortkörper
- Zwischendurch ein paar 5XX Fehler eingestreut
- Ein 504 Fehler bedeutet “ist zwar erfolgreich, aber die Auszeit unseres Lastbalancierers ist zu niedrig eingestellt”
Antwortkörper entspricht nicht der Spezifikation
Das ist immer ein Heidenspass wenn die Spezifikation mit dem (konsumierenden) Team bereits abgestimmt wurde…
Bei Fehlern ein HTTP Status 200 mit zusätzlichem Status im Antwortkörper
HTTP Statuskodes sind schwierig, mkay?
HTTP Statuskodes sind schwierig, mkay?
Am irritierensten finde ich ja bis heute, dass HTTP Statuscodes Strings sind und keine Integer. Das ganze Protokoll scheint mir ein elaborierter Trollversuch zu sein.
Zusätzliches Statusfeld in der Antwort spüre ich so hart :,)
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 { "status": "error", "reason": "I can't do this anymore", "content": [] }Noch besser ist HTTP 200 OK mit einem
{"status":404}. Du kennst den Scheiss Code aber sendest ihn nicht an der richtigen Stelle?
Kollege von mir hat immer 418 in unserer API geworfen wenn er sonst keinen passenden Code finden konnte.
Aber das schlimmste war, als ich sporadisch 502 bekommen habe und es literarisch Jahre gedauert hat bis ich den Fehler reproduzieren konnte und herausfand, dass es am beschissenen Cisco Router lag, die aber nicht mit nem Update rausrücken wollten wegen Geldgier oder so.
Mein Favorit: der externe Dienstleister des Betreibers ändert irgendwas an der Spezifikation und sagt niemandem bescheid.
Bin stolz auf dich Kuh! Öffentliche APIs zu konsumieren und daraus was brauchbares zu produzieren ist schon was magisches.
Hatte heute ein ähnliches Erlebnis. Ich habe ja eine Geminikapsel den ich mit Git befüttere. Aber mein Amiga kann git nicht, aber ich verwalte auch den Serverier auf dem das Git und die Kapsel läuft, also hab ich mit ein bisschen herumlöterei, rumkonvertierererei von Schriftsätzen und HTML4 (mehr geht nicht) eine Oberfläche gezimmert womit ich von meinem Amiga aus Gem-Texte schreiben und publizieren kann, und das dann ohne meinen PC bemühen zu müssen.




