dev-blog

API first #wad15

Bei der WeAreDevelopers Konferenz in Perchtoldsdorf hat @Markus Hinterleitner einen spannenden Talk über die Services bei der Rewe-Group gehalten.

In dem ging es zwar nicht primär, aber auch um das Thema “API first”. Da ich es für einen sehr wichtigen und essenziellen Punkt in der Software Entwicklung halte, gibt es hier eine kurze Erläuterung.

Was ist API first?

Bei klassischen Projekten wird die Business Logik meist in Models bzw. in Controllern verpackt. Deswegen sind diese meist nur für das dementsprechende Projekt einsetzbar. Daher ist es in vielen Fällen sinnvoll zuerst das Backend, in diesem Fall eine komplett abgetrennte API, und danach erst das eigentliche Projekt umzusetzen.

Was bringt es?

  • Wenn jetzt z.B die Website einen App-Ableger bekommen soll, ist es sehr einfach die App mit der API zu verknüpfen. Ohne API wäre das zwar auch möglich, aber sehr umständlich und absolut nicht empfehlenswert, da man entweder die Logik nachbauen, oder eine API in das bestehende Projekt einbauen muss.

  • Sollte ein Logik Fehler auftreten, dann muss dieser nur in der API gefixt werden und muss nicht in jedem Projekt nachgezogen werden.

Wer sollte es verwenden?

Eigentlich jeder. Denn man kann nie wissen, ob man doch mal die Daten auf einer anderen Plattform benötigt. Dennoch macht es aber bei Kleinstprojekten mit einem verschwindenden Teil an Logik keinen Sinn, da der Mehraufwand keinen wirklichen Nutzen mehr bringt.

Welche Nachteile gibt es?

  • Der größte negative Punkt ist zugleich auch der schwerwiegendste. Stellen wir uns mal vor, wir haben eine API an der 5 verschiedene Plattformen hängen. Wenn die API ausfällt, dann fallen mit ihr auch alle unteren Glieder.
    Totalausfall.

  • Jeder hat eine andere Vorstellung von API, aber so gut wie jede ist via HTTP zu erreichen. Das macht die Anwendung wieder langsamer, als wie wenn die Daten eigenständig verarbeitet werden würden. Doch ich sehe das eher mehr als Tropfen auf den heißen Stein, da so ein Request nicht wirklich viel ausmacht.

Visuell

Hier nochmal kurz der Gedankengang aufgezeichnet.

api first
not api first

Fazit

Jeder der ein langfristiges Projekt mit viel Business Logik aufziehen will, sollte in sein Projekt einen Service Layer bzw. eine API einbauen. Das kann und wird einem in der Zukunft viel Zeit und Nerven ersparen.

- Fred

Fred

Fred macht sein Hobby gerade zum Beruf. Nicht nur bei karriere.at sondern auch in seiner Freizeit bastelt unser Lehrling an Software. Tut er das nicht, produziert der Süd-Niederösterreicher oft Youtube-Videos oder widmet sich dem Elektro-Swing von Parov Stelar.

WeAreDevelopers Slides

DEVLAND Nummer 2

DEVLAND die Erste