Esecuzione di chiamate API di Twitter autorizzate OAuth lato client rispetto al lato server, quanta differenza c'è in termini di prestazioni?

6

Sto lavorando su un'applicazione Twitter in Ruby on Rails. Uno dei maggiori argomenti che ho con altre persone nel progetto è il metodo per chiamare l'API di Twitter. Prima, tutto era fatto sul server: accesso OAuth, aggiornamento dei dati Twitter dell'utente e recupero dei tweet.

Recuperare i tweet è stata la cosa più pesante da fare poiché non memorizziamo i tweet nel nostro database, quindi visualizzare i tweet significa che dobbiamo chiamare l'API ogni volta. Una delle persone nel progetto ha suggerito di chiamare i tweet tramite Javascript per ridurre il carico sul server. Abbiamo usato GET search , che, correggimi se ho torto, verrà rimosso quando v1 .0 diventa completamente deprecato, ma non è un problema adesso.

Quando l'API di Twitter è migrata completamente alla v1.1 (di nuovo, correggimi se sbaglio), tutte le chiamate all'API devono essere autenticate, quindi dobbiamo autenticare le nostre richieste Javascript nell'API. Come detto qui :

We don't support or recommend performing OAuth directly through Javascript -- it's insecure and puts your application at risk. The only acceptable way to perform it is if you kept all keys and secrets server-side, computed the OAuth signatures and parameters server side, then issued the request client-side from the server-generated OAuth values.

Se facciamo esattamente ciò che Twitter suggerisce, l'unica differenza tra questo e il fare tutto sul lato server è che il nostro server non dovrà più contattare l'API di Twitter ogni volta che l'utente vuole visualizzare i tweet. Ecco come immagino cosa succede ogni volta che l'utente fa una richiesta:

SelofacciamotramiteJavascript,sarebbepiùdifficiledapartemiaperchédovrei creare manualmente le firme per ogni richiesta, ma lo farò volentieri se l'aumento delle prestazioni valga la pena. Farlo con Ruby on Rails sarebbe molto semplice dato che la gemma su Twitter fa già gran parte del lavoro, quindi sono davvero incoraggiante le altre persone nel progetto sono d'accordo con me.

La differenza di prestazioni è banale o è abbastanza significativa per passare a Javascript?

    
posta Terence Ponce 09.09.2012 - 10:48
fonte

1 risposta

3

Il tuo guadagno in termini di prestazioni arriverà dal Ridimensionamento, (se necessario). Immaginando di avere un sacco di utenti L'opzione 2 causerebbe molto presto il collo della bottiglia sul lato server rispetto all'opzione 1.

Piccola scala in cui il server non avrebbe problemi con il carico, i guadagni in termini di prestazioni sarebbero trascurabili.

    
risposta data 11.11.2012 - 15:26
fonte

Leggi altre domande sui tag