Asp.net-Mvc

如何編寫一個 MVC3/4 應用程序,它既可以作為 Web API 又可以作為該 API 的 UI?

  • July 4, 2012

我的標題很好地總結了這一點。我的第一個雖然它提供了一些數據格式,一個是 HTML,我可以分別使用 Razor 視圖引擎和 MVC3 控制器操作來提供和使用。然後,可能通過自定義視圖引擎提供其他數據格式。很久以前,除了非常基本的 Web 服務之外,我從來沒有真正在這個領域工作過。我在這裡有什麼選擇?我看到的連結到 MVC4 的這個 Web API 是什麼?

注意:我的主要 HTML 應用程序不需要直接從 API 操作。我想首先編寫 API,由一個框架 HTML 客戶端的要求驅動,帶有一個非常基本的 UI,一旦 API 被嵌入,然後使用與 API 相同的服務編寫一個功能齊全的 UI 客戶端,但繞過實際的數據解析和表示 API 組件。

當第一次談論 Web API 時,我就有了同樣的想法。簡而言之,Web API 是來自 MS .NET Web Stack 的新產品,它建構在 WCF、OData 和 MVC 之上,以提供創建 RESTful Web API 的統一方法。這方面的資源很多,所以去Google吧。

現在進入問題..

問題是您當然可以讓 Web API 返回 HTML、JSON、XML 等 - 但這裡缺少的部分是 Razor/ASPX/insertviewengine 這裡提供的視圖/模板。這不是“API”的真正工作。

您當然可以編寫客戶端程式碼來呼叫您的 Web API 並使用大量可用外掛執行模板/UI 客戶端。

我很確定 Web API 不能以與 ASP.NET MVC Web 應用程序相同的方式返回模板化 HTML。

因此,如果您想“重用”應用程序的某些部分(儲存庫、域等),最好將呼叫包裝在各種外觀/服務層中,並使您的 Web API 和單獨的 ASP。 NET MVC Web 應用程序呼叫它以減少程式碼。

你最終應該得到的是一個呼叫你的域並建構模板化 HTML 的 ASP.NET MVC Web 應用程序,以及一個呼叫你的域並返回各種資源(JSON、XML 等)的 ASP.NET Web API 應用程序。

如果您有一個結構良好的應用程序,那麼這種抽象形式應該不是問題。

引用自:https://stackoverflow.com/questions/9987662