我正在學習ASP.NET MVC 5(Visual Studio 2015)並創建了一個基本的MVC Web應用程序。當我創建項目時,我在「爲以下內容添加文件夾和核心參考」下選擇了「MVC」和「Web API」。我還在身份驗證下選擇了「個人用戶帳戶」。我使用EF創建了一些模型,控制器和視圖。這些與認證一起工作良好。我還創建了一個「使用實體框架的操作的Web API 2控制器」,以將API功能添加到我的一個模型中。這再次工作正常。MVC 5 Web應用程序和Web API之間的共享
現在我試圖讓OAuth使用Web API,但在請求令牌時遇到了問題......我不認爲Web應用程序模板隨附該部分。經過大量閱讀,我發現了一些堆棧溢出的建議,通常爲您的Web API創建一個單獨的項目更好。
所以我的問題是:
我將最有可能被一臺服務器和/或子域而在另一個Web應用程序上部署Web API。如果是這樣的話,他們必須在單獨的項目中,對吧?
當有兩個項目時,共享通用組件的最佳方式是什麼?在我的Web API中,是否應該添加對我的Web應用程序的引用,然後創建Web API控制器,或者應該從模型中複製代碼並在Web API中創建新模型?
因此,我會在我的解決方案中創建一個新的類庫項目,創建模型,然後在Web API和Web應用程序中添加對該項目的引用,然後爲其構建控制器?您能解釋爲什麼這比在Web應用程序中構建模型然後在Web API中引用它更好嗎?對於身份驗證,我只使用模板中的默認設置,Web應用程序無需與Web API進行通信。 – user1624184
通過將通用代碼放入單獨的位置,您基本上可以將通用代碼與Web API和Web App解耦。這允許這些代碼獨立於這兩種解決方案進行測試。另外,它確保Web API項目永遠不會與Web App項目發生衝突。 –