Consuma la propria API o crea un sito Web indipendente

1

Il framework PHP Laravel consente di creare un'API e un sito Web sulla stessa applicazione. Poiché entrambi comunicheranno con lo stesso database, mi stavo chiedendo cosa sarebbe meglio tra consumare la mia API per il mio sito Web e creare un DAO adeguato al sito web.

Da un lato, consumare la mia API renderebbe un singolo punto di ingresso al database per tutte le applicazioni e permetterebbe di creare pagine dinamiche, ma d'altra parte richiede molto javascript per le richieste interne e DOM query, ed è più difficile rendere certi percorsi accessibili solo per gli amministratori, ad esempio.

Che cosa suggerisci?

Sto semplicemente prendendo Laravel come esempio, potrebbe essere qualsiasi altro framework web.

Grazie per il tuo aiuto.

    
posta JacopoStanchi 29.05.2018 - 19:54
fonte

2 risposte

1

Penso che di solito sia una buona idea disaccoppiare il sito web dal database, quindi un'API generale per il database sarebbe auspicabile e in alcuni casi più sicura. Per beneficiare realmente idealmente, aggiungerei anche una sorta di gateway API che nasconde la complessità, inoltre come hai detto potresti avere bisogno di un ulteriore tipo di autorizzazione come i token JWT (ad esempio).

Ora, in realtà, mentre tutto ciò suona bene, è scalabile e consentirebbe una moltitudine di client oltre i browser senza troppi oneri aggiuntivi, potrebbe essere semplicemente eccessivo. Dipende sempre dal tuo caso d'uso, ma in uno scenario come hai descritto dove una singola istanza gestisce sia i server Web che l'endpoint dell'API, probabilmente non sarà troppo vantaggioso nemmeno per creare un'API. Se esiste una buona ragione per un'API, è meglio iniziare a fare le cose correttamente e separare il servizio database dal server web in primo luogo.

Solo i miei due centesimi ...

    
risposta data 30.05.2018 - 23:22
fonte
0

Dogfooding è una pratica utile. Se stai fornendo la tua API ad altri, dovresti probabilmente usarla tu stesso.

Se, tuttavia, il tuo sito web utilizza l'API in modo sostanzialmente diverso o fa cose che non dovrebbero essere esposte tramite l'API, potrebbe essere meglio andare direttamente al database.

    
risposta data 29.05.2018 - 23:22
fonte

Leggi altre domande sui tag