Sto progettando un'applicazione web che dovrebbe essere un "punto di ingresso" per alcuni strumenti di elaborazione dei file.
Consente di chiamare l'app principale il "Connettore" e gli strumenti saranno "Strumento1", "Strumento2" ecc.
Gli strumenti verranno installati su server separati ed espongono un'API REST (il mio design).
I file devono essere memorizzati da qualche parte in una posizione centrale condivisa, in modo che non vengano trasferiti tra i servizi.
L'idea è la seguente. L'utente carica un file nel "Connettore". Voglio prendere il file valutare e utilizzare un repository di file per memorizzarlo su una condivisione di rete. L'archiviazione deve ancora essere decisa, quindi ho bisogno di una classe FileProvider generica che fornisca l'accesso ai file, indipendentemente dal fatto che sia un blob azzurro, un server FTP o una cartella condivisa su una rete.
Avrò a disposizione un database con EF che conserverà le informazioni sui metadati sui file (chi lo ha caricato, quando, nome del file, file guid etc). Dovrò quindi inviare una richiesta POST a Tool1, per elaborare il file. Voglio solo inviare l'ID del file, non il percorso effettivo.
Si suppone che Tool1 prelevi il file dalla posizione condivisa per ID e lo elabori, quindi salvi la versione elaborata di questo file nella stessa posizione condivisa e invii una chiamata di successo a "Connettore".
Il connettore quindi valuterà il file e forse invierà una richiesta REST simile a "Tool2" - di nuovo, solo con l'ID del file. Stessa storia, in sostanza.
Il problema che sto avendo è ... Affinché i file vengano selezionati per ID, i progetti WebApi di "Strumenti" dovrebbero avere accesso allo stesso database. È un approccio corretto?
Volevo che le API di Tool fossero praticamente indipendenti e separate dall'app Connector e sembra che le stiano combinando ...