Abbiamo una soluzione .NET composta da un sito Web MVC e una serie di librerie per la logica aziendale e dei dati. In passato il sito Web era l'unico modo per interagire con la nostra logica aziendale, ma ci stiamo ritrovando a dover condividere questa logica tra vari sistemi e abbiamo deciso di esporlo tramite un'API REST.
Il tipico flusso di informazioni tra l'architettura corrente è:
UI -> Model (Controller) -> Model (Business Logic) -> Entity (Data Logic) -> DB
Se dovessi spostare la libreria di business logic in un'API REST, ovviamente ho bisogno di aggiornare il sito MVC per consumarlo, così continuiamo come al solito.
Devo lasciare le firme dei metodi esistenti sulla logica di business così come sono, con gli oggetti del modello come parametri, o dovrei prendere in considerazione il refactoring di questo?
public List<ClaimSearchEntity> Search(ClaimSearchRequest request)
Ecco qualcosa per dare un'idea delle dipendenze tra i livelli:
MVC.App -> Application.Logic
Application.Logic -> Application.BusinessLogic
Application.BusinessLogic -> Application.Data
-> Application.Models
Application.Data -> Application.DataLogic
-> Application.Entities
-> Application.Mappings
Qualcos'altro che ho pensato potrebbe essere utile a questo proposito è la restituzione dei metadati per le richieste API esponendo i campi del modello come JSON. Qualcosa come JIRA fa.
Ho bisogno di trovare un equilibrio tra l'esecuzione rapida del lavoro e il suo corretto svolgimento. Hai qualche suggerimento o alternativa per il mio approccio?