如何从头开始构建ASP.NET Web API?

时间:2013-04-24 21:05:02

标签: asp.net-web-api

我刚刚开始使用ASP.NET Web API。

虽然我对模板和类似的东西没有任何反对意见,但我更愿意在信任为我生成的代码之前至少完全理解底层的内容。

我很难找到任何类型的指南,可以从头开始构建ASP.net WEB API,而不需要MCV Web API项目模板提供的任何脚手架。

所以我的问题是:Web API的哪些部分是用于启动和运行API的简单代码?

另外,如果有一个指南我没有找到有人可以指向我,那也将受到赞赏。

1 个答案:

答案 0 :(得分:6)

这里有一点让你开始:

  1. 创建新的控制台应用程序
  2. 安装“Microsoft ASP.NET Web API Self Host”NuGet包
  3. 将此代码添加到您的Main方法:
  4. 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 static配置API。