Best practice per l'archiviazione di informazioni da uno script php per uso futuro

0

Il mio datore di lavoro utilizza i moduli per aiutare le persone a cercare prodotti. Gli elenchi dei prodotti possono cambiare di volta in volta e i moduli devono essere nuovamente aggiornati.

È possibile accedere alle informazioni sul prodotto tramite un'API di terze parti con cui ho iniziato ad armeggiare, di recente ho creato uno script che recupera le informazioni con PHP e crea e popola un modulo in modo dinamico con Javascript.

Fin qui tutto bene, ma ...

Ci sono limitazioni all'API, principalmente è possibile accedervi solo un certo numero di volte all'ora, probabilmente è più di quanto il mio modulo / script possa utilizzare ma voglio creare uno script che sia minimamente intrusivo.

La mia domanda principale è ...

Qual è la procedura migliore per accedere alle informazioni una volta e archiviarle abbastanza a lungo da consentire la reimpostazione dell'API? Mi stavo chiedendo di creare un cookie ma esiste la possibilità per gli utenti di disattivarlo.

(Inoltre, lo sto facendo come un progetto personale ma mi piacciono le persone per le quali lavoro e penso che questo possa aiutarle.)

Grazie in anticipo.

    
posta tRudgeF3llow 02.04.2014 - 04:57
fonte

1 risposta

1

Di solito è possibile memorizzare / memorizzare nella cache i risultati dell'API sul proprio server ed eseguire la query sulla propria cache prima dell'API. Se non riesci a trovare nulla sulla cache, o se il risultato della cache è già scaduto o troppo vecchio, utilizza l'API per ottenere i risultati e memorizzare / aggiornare di nuovo la cache.

Potrebbe essere semplice come una tabella con query , result , datetime colonne o piuttosto complicato se l'API è basata su richieste HTTP POST o se gli utenti hanno un Query personalizzate che potrebbero restituire Risultati personalizzati .

Per il caso successivo è possibile implementare un meccanismo di cache per richiesta. Non sarà così efficiente e facile da implementare come la prima soluzione, quindi non optare per questo a meno che non si sia certi di quello che ti serve.

Una semplice cache 1: 1 potrebbe essere qualcosa come un livello intermedio in cui è possibile catturare completamente l'URI dell'API richiesto e quindi utilizzarlo come chiave, quindi archiviare e collegare nuovamente i risultati a questa chiave. La chiave potrebbe essere semplice come un nome di file e i risultati potrebbero essere un file JSON contenente i dati dei risultati.

Più avanti prima di inviare qualsiasi richiesta all'API, dovresti prima controllare la directory della cache per vedere se hai già una query / risultati nella cache o meno. Sarà utile solo se gli utenti richiedono una stessa cosa più di una volta, altrimenti, se le richieste sono per lo più uniche, non preoccuparti di implementare la cache.

    
risposta data 10.04.2014 - 19:50
fonte

Leggi altre domande sui tag