/ / Best practice per utilizzare più API o origini dati per un'applicazione: json, xml, database, schema, origine dati

Procedura consigliata per utilizzare diverse API o origini dati per un'applicazione: json, xml, database, schema, origine dati

Voglio creare un'applicazione che utilizzi i dati di diversi endpoint.

Diciamo che ho:

  • API JSON per ottenere dati sul cinema
  • Esportazione XML per ottenere dati su ???
  • Un'altra API JSON per qualcos'altro
  • Un file csv per qualche altra merda ...

Nella mia applicazione voglio riunire tutti questi dati e creare visualizzazioni per essi e così via ...

La mia idea era quella di creare un database creando schemi per tutte queste fonti di dati, così posso fare una sorta di "script di importazione" che posso chiamare ogni volta che voglio ottenere i dati più recenti.

Ho pensato agli schemi perché voglio essere in grado di adattare facilmente una nuova API con qualsiasi tipo di schema.

Per favore, illuminami delle possibilità e delle migliori pratiche là fuori (teoria e pratica se possibile: P)

risposte:

0 per risposta № 1

Hai assolutamente ragione nel creare un database. Ma il vero problema probabilmente non sarà come memorizzare i tuoi dati. Sarà come farlo combaciare logicamente e semanticamente.

Ti suggerisco di dare prima un'occhiata a ciò che staienpoints possono fornire. Ottieni diversi campioni da ogni fonte e analizzali se puoi. Come saprai quali dati sono nuovi? Come puoi confrontarlo con i dati esistenti e con i dati di altre fonti? Se i dati esistenti cambiano o vengono eliminati, come lo rileverete e lo gestirete? E se le fonti non fossero d'accordo su qualcosa? Come e quando eseguire la sincronizzazione? Cosa farai se una delle tue fonti si interrompe? Eccetera.

È estremamente difficile rendere i dati coerentise le tue origini dati non lo sono. Di norma, se le fonti sono diverse, non sono coerenti. Da qui il proverbio "spazzatura dentro, spazzatura fuori". Noi umani non abbiamo problemi a gestire piccole incongruenze, ma gli algoritmi non possono funzionare correttamente se ci sono discrepanze. Anche se sulla carta tutto combacia, di solito ci si dimentica che i dati possono cambiare nel tempo ...

Almeno questa è la mia esperienza in questi casi.


0 per risposta № 2

Non sono sicuro se nell'applicazione lo desiderimostra tutti i dati nella stessa vista o se creerai viste differenti per ciascuna delle sorgenti. Se desideri visualizzare i dati nella stessa vista, come una griglia, ti consiglio di utilizzare l'ereditarietà o un'interfaccia a seconda dei dati e delle esigenze. Consiglierei di impostare questa struttura anche nel database utilizzando tabelle diverse per le diverse fonti e avendo una tabella genitore correlata a tutte loro che ha un tipo associato ad essa.

Ecco un buon thread con la discussione sulla scelta di un'interfaccia o di un'ereditarietà. Ereditarietà e interfaccia in C #

Ed ecco alcuni esempi di rappresentazione dell'ereditarietà in un database. Come puoi rappresentare l'ereditarietà in un database?