Non sono sicuro che questo sia il miglior sito secondario per porre questa domanda, ma sono abbastanza sicuro che non si adatti alla normale pagina Facebook SO ...
Mi è stato chiesto di creare un'API generale per la connessione a diverse piattaforme di social media (al momento Facebook e Twitter).
Ho già realizzato entrambi separatamente. Significato Recupero i dati di cui ho bisogno sia su Facebook che su Twitter e conservo i dati nel proprio dataclass. Nel mio caso, un elenco di FacebookTimelineItems e un elenco di TwitterTimelineItems.
ora la parte più difficile è prendere le parti che vengono utilizzate in entrambi (nome utente, id, messaggio e così via) e creare una classe generale che viene infine passata a chi / che cosa ha inviato la chiamata alla mia API.
queste sono due immagini delle classi di dati che ho:
probabilmente non è corretto al 100% ma dà un'idea di come sia.
Ora ho avuto molte idee su come procedere e generalizzare i due, il che è più difficile di quanto pensassi all'inizio.
-
Crea un'interfaccia (TimelineItem) e lascia che le altre classi estendano quella. In questo modo sarò sempre sicuro di avere una classe che contenga almeno le informazioni di base di cui ho bisogno. Il rovescio della medaglia è che la deserializzazione del JSON sembra essere un incubo.
-
Utilizza i due dataclass che ho e combinali in una nuova classe in seguito, poi passa a chi lo ha richiesto. Probabilmente funzionerebbe, ma ho l'idea che non sia il modo migliore per affrontare questo problema, ed è piuttosto rischioso SE lo faccio funzionare.
O, nel caso in cui gli altri due siano quasi impossibili. Tieni i due separati nella parte anteriore e vai a sederti nell'angolo piangendo perché ho appena capito che non puoi raggruppare insieme facebook e twitter ...
Nota: non devo creare la parte front-end (vista), ma mi limito ad assicurarmi che il Modello sia pieno di dati:)
Spero di averlo inserito nella sezione giusta, se non l'ho fatto, mi scuso e vorrei sapere dove dovrei andare con la mia domanda.
Grazie in anticipo per eventuali risposte / idee / opinioni su questo.