Le API REST dovrebbero contenere la possibilità di inviare e-mail?

0

Quando si costruisce un servizio che utilizza sia un'API REST back-end, sia (a) un'applicazione (i) front-end, è opportuno integrare in tale API la possibilità di inviare e-mail?

Ad esempio, prendi Twitter ; per coloro che non lo sanno, funzionano con un'API REST back-end e un sito Web statico front-end che consuma risorse JSON.

Non conosco i loro interni, quindi non so davvero come gestire questa situazione da solo, ma ovviamente consentono agli utenti di registrarsi, registrarsi, recuperare le loro password, confermare i loro account eccetera. La maggior parte di queste cose richiede l'invio di una e-mail all'utente. L'API lo fa, o come viene implementato?

    
posta jdersen 25.03.2016 - 03:27
fonte

3 risposte

2

Sicuro. Perché no?

Quando invochi un servizio REST, stai trasferendo lo stato. Spetta al software su entrambi i lati determinare quali azioni richiedono in definitiva i delta.

L'eccezione generale sarebbe per i metodi sicuri come HEAD, GET, OPTIONS e TRACE, che dovrebbero < em> generalmente non producono effetti collaterali.

E come eccezione all'eccezione, anche per i metodi sicuri, se la tua API ha ricevuto "troppe" richieste o rilevato altre richieste sospette, potresti potenzialmente avere un effetto collaterale come la revoca dell'accesso e / o la distribuzione di un email a un amministratore della sicurezza.

    
risposta data 25.03.2016 - 21:01
fonte
3

Nel suo cuore, REST è solo una mappatura delle operazioni CRUD sui verbi HTTP - è un'interfaccia per comunicare con un server. Non penso ci sia alcuna aspettativa che la chiamata ad un'azione POST, ad esempio, debba essere gratuita per gli effetti collaterali, quindi non vedere alcun problema perché è il trigger per un flusso di lavoro di back-end, incluse le email.

    
risposta data 25.03.2016 - 19:57
fonte
2

Probabilmente no.

Su progetti più grandi, no, dalla mia esperienza, non sarebbe tipico che qualunque script o processo si trovi sul lato server della richiesta REST invierebbe effettivamente e-mail. Più spesso, potrebbe generare informazioni sull'e-mail, ma poi inserirle in un database o in una coda per inviare un processo di posta elettronica dedicato. Ciò consente alle applicazioni di limitare la velocità delle e-mail in uscita, nonché di gestire i problemi che si presentano (rinviare) e la registrazione.

Tenete a mente, sulla falsariga di ciò che Robert Harvey fa apparire nei commenti, ciò che è giusto o no è completamente situazionale. Quello che è appropriato per Twitter non è lo stesso di quello che è appropriato per un forum PHPBB "Scarecrow and Mrs King" con 12 membri. Su siti più piccoli, certo, lo script sul lato server della richiesta REST può eseguire l'email stessa. È probabilmente molto più semplice della creazione di un processo dedicato per gestire 3 email alla settimana. Ma man mano che cresce, la funzionalità passerà probabilmente a più processi dedicati.

    
risposta data 25.03.2016 - 21:35
fonte

Leggi altre domande sui tag