2013-04-24 28 views
2

我剛剛開始使用ASP.NET Web API。如何從頭開始構建ASP.NET Web API?

雖然我對模板和類似的東西沒有任何反應,但我更願意至少了解在信任爲我生成的代碼之前究竟發生了什麼。

我很難找到任何類型的指南,從頭開始構建ASP.net WEB API,沒有任何從MCV Web API項目模板給出的腳手架。

所以我的問題是:Web API的哪些部分是獲取API啓動並運行的裸骨代碼?

此外,如果有一個指南,我沒有發現有人可以指向我,這也將不勝感激。

+0

StackOverflow是針對特定問題,而不是「我在哪裏可以找到」的問題。 Google和Bing專注於此,並且非常擅長。詢問有關查找物品的問題是「購物清單」問題,因此在此處不合適。有Meta帖子[這裏](http://meta.stackexchange.com/q/139618/172661)和[這裏](http://meta.stackexchange.com/q/158809/172661),解釋原因。投票結束爲「不具建設性」。祝你好運。 – 2013-04-25 01:59:19

+0

感謝您的糾正。我將編輯這個問題,以更具體和真實地回答下面的問題。 – JHixson 2013-04-25 12:21:22

+0

似乎有點溫和。問題首先要求提供開始使用Web API所需的代碼指導。這似乎是對事實,參考或專業知識的明確要求 - Web API啓動和運行需要什麼*正確*。我只是一個人,閱讀這個問題並熱切地向下滾動以獲得一個簡潔的答案。 – Steve 2013-11-06 21:42:21

回答

6

這裏有一點點讓你開始:

  1. 創建一個新的控制檯應用程序
  2. 安裝「微軟的ASP.NET Web API自主機」 NuGet包
  3. 將此代碼添加到您的主方法:
public static void Main() 
{ 
    string baseAddress = "http://localhost:12345/"; 
    HttpSelfHostConfiguration config = new HttpSelfHostConfiguration(baseAddress); 
    config.Routes.MapHttpRoute("Default", "api/{controller}"); 

    HttpSelfHostServer server = new HttpSelfHostServer(config); 
    server.OpenAsync().Wait(); 

    Console.ReadKey(); 

    server.CloseAsync().Wait(); 
} 

4.創建新的控制器類:

public class HelloWorldController : ApiController 
{ 
    public string Get() 
    { 
     return "Hello World"; 
    } 
} 

5.運行您的應用程序並將您最喜歡的HTTP客戶端指向http://localhost:12345/api/helloworld。我建議使用Fiddler的作曲家,但瀏覽器也應該可以工作。

一個注意事項:如果您以管理員權限啓動它,這將只在VS中起作用。如果你不管理員權限運行,則可能需要添加此行:

config.HostNameComparisonMode = HostNameComparisonMode.Exact; 

這說明了如何啓動自己的HTTP服務器在應用程序中。 Web主機Web API有一點不同,主要區別在於,不是像上面那樣創建HttpSelfHostConfiguration對象,而是使用GlobalConfiguration.Configuration靜態配置您的API。

+0

謝謝!我的問題是,我不認爲開始使用控制檯應用程序,我總是以「空白的ASP.NET頁面」模板開始。雖然我確信這是可能的,但我更喜歡你的入門方法。此外,它允許我找到[本指南](http://www.asp.net/web-api/overview/hosting-aspnet-web-api/self-host-a-web-api)。 – JHixson 2013-04-25 12:30:25

+0

現在,使用IIS託管的最簡單方法是創建一個空的Web應用程序並僅標記Web Api。 – 2014-12-31 22:07:24