0

使用web api 2開始一個新項目,我們希望將它自己的API與MVC頁面分開,其中包含自動生成的API文檔。不同項目中的Web api 2和api幫助

我的方法是創建一個空web API項目並創建我的控制器。然後我創建了另一個類型爲web api的項目(相同的解決方案),但是這次我包含了MVC部分。 然後我從MVC項目中刪除了Web API控制器(因爲我只希望它用於文檔)並且包含對API項目的引用。

這工作(幾乎)完美,api項目公開資源和MVC項目顯示端點的自動生成的文檔。

現在問題來了:因爲我們在MVCproject中包含了api項目,MVC項目也自動公開了端點,這是絕對不需要的,需要刪除,我嘗試刪除GlobalConfiguration.Configure(WebApiConfig.Register );從global.asax中的application_start,現在終端不公開(根據需要),但不生成文檔。

有人想過如何克服這個問題嗎?肯定其他人一直想要相同的分離...

+0

所以...總結....我需要的是禁用MVC項目上的所有端點... – iCediCe

回答

1

您可以創建一個全局過濾器,並且如果請求是針對mvc端點,您可以重定向到api文檔端點。

+0

不是一個壞主意,但尋求不同的解決方案。 – iCediCe

0

爲了讓一切都變得簡單,我們選擇了一個不同的解決方案,在我們的構建中的後腳本會觸發一個外部exe文件,該文件爲api生成靜態html頁面。 使用的程序可以在這裏找到:https://code.msdn.microsoft.com/Design-time-help-page-3048fb43

這樣我們得到了一個很好的乾淨的解決方案,無需旋轉完整的MVC,但仍然與自動生成的API文件。

該程序並不完全符合我們的需求,但幸運的是源代碼可用,所以我只是根據我們的需求進行了定製。