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

JHi*_*son 2 asp.net-web-api

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

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

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

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

此外,如果有一个指南,我没有找到有人可以指向我,这也将不胜感激.

You*_*oui 6

这里有一点让你开始:

  1. 创建新的控制台应用程序
  2. 安装"Microsoft ASP.NET Web API Self Host"NuGet包
  3. 将此代码添加到Main方法:
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();
}
Run Code Online (Sandbox Code Playgroud)

4.创建一个新的控制器类:

public class HelloWorldController : ApiController
{
    public string Get()
    {
        return "Hello World";
    }
}
Run Code Online (Sandbox Code Playgroud)

5.运行您的应用程序并将您喜欢的HTTP客户端指向http://localhost:12345/api/helloworld.我建议使用Fiddler的作曲家,但浏览器应该也可以.

一个注意事项:如果您使用管理员权限启动它,这只适用于VS. 如果您没有使用管理员权限运行,则可能需要添加以下行:

config.HostNameComparisonMode = HostNameComparisonMode.Exact;
Run Code Online (Sandbox Code Playgroud)

这说明了如何在应用程序中自行启动HTTP服务器.Web托管Web API略有不同,主要区别在于,不是像上面那样创建HttpSelfHostConfiguration对象,而是使用GlobalConfiguration.Configuration static配置API.