Come il mio sito web dovrebbe utilizzare la propria API?

1

Sto costruendo un piccolo servizio web che fornirà ai miei utenti dati tramite API. Inoltre, alcuni dati saranno disponibili direttamente sul mio sito web.

La domanda riguarda come utilizzare la mia API personale? Il mio sito web dovrebbe fare una query, ad esempio, http://website.com/api/users/?format=json e quindi eseguire il rendering dei dati? Perché posso utilizzare le funzioni standard di Django ORM, ma questo non corrisponde all'utilizzo della propria API.

Aggiornamento: Immagina di avere un database pieno di giochi con data di rilascio, nome del gioco, piattaforma di gioco, ecc. E sul mio sito web mostrerò questi giochi come una lista o una griglia. Inoltre, questi dati possono essere raggiunti tramite API in formato JSON, questi dati possono essere aggiornati tramite API e anche cancellati. E sul mio sito ho moduli html che mi permettono di fare queste azioni in un modo user-friendly. Quindi, come dovrei accedere alla mia API? Via la richiesta POST alla mia API o via django ORM direttamente al database?

    
posta xelblch 05.06.2013 - 15:22
fonte

3 risposte

4

A meno che il sovraccarico di prestazioni dell'utilizzo del servizio Web sia un problema, devi assolutamente utilizzare la tua API pubblica.

Questo ti aiuterà a ottenere un comportamento coerente tra la tua applicazione e i consumatori. Eviterà inoltre la duplicazione del codice e la parte migliore: se interrompi il tuo servizio web, probabilmente sarai il primo a notarlo.

Il concetto è solitamente definito come "dogfooding" e Twitter è un esempio di un'applicazione, ovvero che dogfoods è la propria API.

    
risposta data 05.06.2013 - 16:46
fonte
0

Senza capire come viene impostato il tuo servizio web e come si intende chiamare i metodi web, non penso che ci sia un modo per dire che dovresti implementarlo in un modo specifico.

Per le migliori pratiche e praticità, lo implementerei il più vicino al modo in cui intendi gli sviluppatori a consumare / implementare il più possibile.

    
risposta data 05.06.2013 - 15:34
fonte
0

Sto facendo alcune supposizioni qui perché la tua domanda ha qualche buco in esso, ma quello che penso tu stia chiedendo è se il codice back-end (lato server) per il tuo sito web dovrebbe fare richieste http al tuo API pubblica.

Supponendo che questa sia la domanda, allora la risposta è no. Invece di chiamare l'API pubblica dal codice del tuo sito Web sul lato server, il tuo sito web e l'API pubblica dovrebbero entrambi essere posizionati sopra un modulo condiviso che implementa la funzionalità della tua applicazione.

Con questo modello, il modulo condiviso contiene tutte le chiamate al database e la logica aziendale. Il sito Web autentica l'utente, chiama il modulo condiviso e rende l'interfaccia utente. L'API pubblica potrebbe avere uno schema di autenticazione diverso, chiama il modulo condiviso e restituisce JSON.

Il modo in cui implementate il modulo condiviso dipende dalla vostra situazione. Se le pagine web e le API pubbliche sono la stessa applicazione compilata, il modulo condiviso potrebbe essere solo un insieme di interfacce che possono essere iniettate. Se si tratta di applicazioni separate, il modulo condiviso potrebbe essere una libreria compilata separatamente (come un assembly .Net) oppure potrebbe essere un servizio Web non pubblico (ricordarsi che l'autenticazione viene eseguita dal sito Web e dall'API pubblica).

    
risposta data 12.11.2016 - 06:30
fonte

Leggi altre domande sui tag