Se ho un'API e io sono quella che la consuma, il front-end dovrebbe essere un progetto separato? Sto usando Visual Studio ASP.NET Core 1.x.
Un'API è un'interfaccia prima di tutto (e cosa significa "I" in "API").
In generale, ha senso che un'interfaccia sia un componente separato per disaccoppiare dall'implementazione sottostante. Ciò semplifica la condivisione: è possibile fornire una libreria snella con solo le specifiche dell'interfaccia, semplificando l'utilizzo e la comprensione. In fase di esecuzione, l'implementazione può essere caricata in modo dinamico.
Un altro vantaggio è che se l'implementazione non è strettamente accoppiata a livello di modulo, è possibile scambiare un'implementazione alternativa. Questo potrebbe essere un "finto" e potrebbe essere utile se, ad esempio, l'implementazione "reale" sottostante tocca database o altri sistemi di persistenza (o remoti) con cui non vuoi fare confusione durante i test.
hai bisogno di per mantenere l'interfaccia separata? No. È una buona cosa? Sì.
Da "il modo in cui Visual Studio fa la magia nera in modo da potermi facilmente sparare ai piedi" Avrei almeno un progetto separato nella mia soluzione, se non addirittura una soluzione completamente separata per mantenere le cose completamente pulite.
Leggi altre domande sui tag design api asp.net-core