2017-10-04 36 views
0

Ich versuche zu verstehen, wie Daten von einer API zwischengespeichert werden (PokeAPI, um genau zu sein), um die Menge der Anrufe zu begrenzen, die die Anwendung für die Daten macht.Wie zwischenspeichern JSON API-Daten in PHP?

Zum Beispiel einer meiner Funktionen bekommt „All Pokemon“ von der API:

function getAllPokemon() { 
     $url = 'http://pokeapi.co/api/v2/pokemon/?limit=151'; 
     $response = Requests::get($url); 
     $allPokemonData = json_decode($response->body, true); 
     return $allPokemonData; 
    } 

ich die Daten in dieser Funktion verwenden, um ein Menü der Listenelemente in meiner pokedex App zu bauen. Wie kann ich die JSON-Ergebnisse zwischenspeichern, damit ich die API nicht jedes Mal aufrufen muss, wenn die Seite neu geladen wird?

Von meiner Forschung kenne ich die Grundlagen, was getan werden muss, ein Cache muss in einem Verzeichnis erstellt werden und die App muss prüfen, ob eine zwischengespeicherte Datei vorhanden ist, bevor ein Anruf an die API, wenn ja Existieren nicht, wenn es nicht für eine bestimmte Zeit an die API und den Cache sendet - kann ich das aber nicht in Arbeitscode übersetzen? Kann mir jemand ein Beispiel zeigen oder auf irgendwelche Lernmaterialien zeigen? Danke im Voraus.

+0

http://www.php-cache.com/ – Sammitch

Antwort

0

Sie können redis für Cache-Werte Schlüssel> val verwenden. Nach der ersten Anfrage können Sie die abgerufenen Daten mit einem Schlüssel speichern. der zweite und andere Abrufvorgänge können empfangene Daten empfangen, die in redis zwischengespeichert wurden.

Hier Tutorial für Redis und PHP https://scotch.io/tutorials/getting-started-with-redis-in-php