3rd Party API Aufrufe

  • Hallo zusammen,


    ich möchte gerne in einem Projekt 3 APIs gleichzeitig aufrufen und die Ergebnisse von den drei APIs in einer generischen API ans Frontend ausgeben.

    ich denke aktuell über eine Umsetzung mit Queues nach, allerdings muss ich da die Ergebnisse wenn ich das richtig sehe zwangsläufig erst in der DB zwischenspeichern.


    Kann mir vielleicht jemand ein paar Denkanstöße geben, wie man das am besten mit Laravel macht?


    Danke!

  • Hallo Erik,


    willkommen im Forum.


    der Ansatz mit dem Zwischenspeichern der APIs ist nicht schlecht, da diese schließlich auch mal nicht erreichbar sein können. Ebenfalls dauern die Abfrage auch etwas länger, daher ist es besser die APIs nicht immer bei jedem Aufruf deiner API abzufragen.


    Queues brauchst du nicht unbedingt. Diese sind nur zum asynchronen abarbeiten von Aufgaben gedacht. Hier wahrscheinlich nicht nötig.


    Wie du vorgehen könntest:


    1. Konsolen Befehl erstellen, der die APIs abruft und irgendwie speichert (z.B. Cache oder in DB). Siehe dazu HTTP Anfragen.

    2. Für diesen Konsolen Befehl einen Scheduler erstellen, der die Daten regelmäßig im Hintergrund neu abruft (z.B. jede Viertelstunde). Siehe dazu Task Scheduling.

    3. Eine HTTP Route für deine API, die dann die Daten aus dem Cache oder DB ausgibt.


    Deine API würde dann nicht direkt von den anderen API abhängen. Wenn also die externen APIs langsam oder nicht erreichbar sind, wärest du immer noch in der Lage schnell die Daten zu liefern.


    Vielleicht hilft es dir.

  • Hi Marvinrabe,


    danke dir für deine Antwort.


    Cachen geht bei den APIs leider nicht, weil ich quasi Reiseangebote damit abfrage und da die Preise sich ja theoretisch sekündlich ändern können bzw. je nachdem was der Kunde sucht.


    Aktuell siehts so aus, als ob wir es mit Redis queues (Horizon) machen...


    VG

    Erik