Zu viele APIs können die PHP-Applikation lahm legen

4 Arten API Calls zu optimieren
Kommentare

Im Verlauf der Entwicklung einer PHP-Applikation kommt man höchstwahrscheinlich nicht drum herum, die Applikation mit Remote Resources oder Services zu verbinden. API Services verschiedenster Art können dann herangezogen werden, um Remote Data einzuholen, mit User Accounts zu verbinden etc.

Im Web findet man inzwischen über zehntausend APIs aller erdenklichen Serviceformen, die natürlich geradezu danach schreien, die Funktionalität einer PHP-Applikation zu erweitern. Aber es ist auch Vorsicht geboten, denn nutzt man APIs falsch, kann das ganz schnell zu Performance-Problemen führen. Damit eben das nicht passiert, hat Jacek Barecki ein paar Lösungsvorschläge zusammengestellt.

  • Multiple Request gleichzeitig Ein API Call läuft im Grunde genauso ab, wie die Durchführung eines PHP-Skripts, bei dem jeder Command nach dem anderen läuft. Wenn die App aber mehrere API Calls macht und die Daten jeder Source weiterlaufen soll, muss nicht jeder Request einzeln durchgeführt werden. Man muss lediglich ein Skript schreiben, das API Calls parallel durchführt. In PHP gibt es dafür ein Set curl_multi-Funktionen.
  • API Calls vom App Main Flow trennen Damit nicht alle Reuqests im Main Flow gemacht werden, und so der Endnutzer unter Umständen eine gerenderte Seite erst sieht, wenn das PHP-Skript die API Responses und verarbeiteten Daten erhält, muss der Teil der Applikation, der für das Handling der Request zuständig ist vom Main Flow getrennt und in ein Standalone-Skript verlegt werden. So werden API Calls in einem getrennten Threads ausgeführt.

Welcher der beiden erstgenannten Lösungsvorschläge besser ist, hängt davon ab, in welchem Kontext der Remote Server angefragt wird.

  • Smart Cache Engine Der Bau einer Smart Cache Engine kann das Skript davon abhalten Calls zu machen, die im Grunde unnötig sind, weil der Content, der auf einem anderen Server lokalisiert ist sich nicht geändert hat. Schlaues Caching kann außerdem die Zahl transferierter Daten zwischen Servern innerhalb eines einzelnen API Calls reduzieren. Um eine Engine zu bauen, muss man zunächst herausfinden, in welchen Fällen die Antwort von einem Remote Server sich nicht ändert. Das hängt natürlich auch vom jeweiligen API Service ab, aber im Grunde muss man ein Parameter-Set finden, das eine bestimmte Anzahl an Antworten in einer bestimmten Zeit zurückgibt.
  • API-Dokumentation Die Dokumentation sorgfältig durchzulesen kann, so simpel es auch klingen mag, durchaus Lösungen erschließen, API Calls effizienter zu machen.

Ausführlichere Informationen könnt ihr im Blogpost „How to Speed Up Your App’s API Consumption“ nachlesen.

Aufmacherbild: stairs maze isolated on white background von Shutterstock / Urheberrecht:andrea crisante

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -