首页 存档 技术 查看内容

使用OWIN 为WebAPI 宿主 跨平台

2018-3-30 13:00 |来自: 互联网 559 0

摘要: (点击上方蓝字,可快速关注我们) 来源:linezero cnblogs.com/linezero/p/5087997.html OWIN是什么? OWIN的英文全称是Open Web Inte**ce for .NET。 如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NE ...

(点击上方蓝字,可快速关注我们)


来源:linezero

cnblogs.com/linezero/p/5087997.html


OWIN是什么?


OWIN的英文全称是Open Web Inte**ce for .NET。


如果仅从名称上解析,可以得出这样的信息:OWIN是针对.NET平台的开放Web接口。


那Web接口是谁和谁之间的接口呢?是Web应用程序与Web服务器之间的接口,OWIN就是.NET Web应用程序与Web服务器之间的接口。


为什么需要这样一个接口呢?因为.NET Web应用程序是运行于Web服务器之中的,.NET Web应用程序需要通过Web服务器接收用户的请求,并且通过Web服务器将响应内容发送用户。


如果没有这样一个接口,.NET Web应用程序就要依赖于所运行的具体Web服务器,比如ASP.NET应用程序要依赖于IIS。有了这个接口,ASP.NET应用程序只需依赖这个抽象接口,不用关心所运行的Web服务器。


所以,OWIN的作用就是通过引入一组抽象接口,解耦了.NET Web应用程序与Web服务器,再次体现了接口的重要性。在软件开发中,每次解耦都是一次很大的进步。


【进一步的理解】


OWIN是对ASP.NET Runtime的抽象。


ASP.NET 5.0是OWIN的一种实现。


通过下面几张图可以更直观地理解:


了解了一些基础理论,下面我们来实际开发。

OWIN Self-Host ASP.NET Web API 2


首先我们创建一个空的控制台项目:



然后通过Nuget来安装 Microsoft.AspNet.WebApi.OwinSelfHost



我们也可以打开NuGet控制台..输入命令:Install-Package Microsoft.AspNet.WebApi.OwinSelfHost

然后我们再添加一个OWIN启动类名为Startup如下:

Startup中编写代码如下:


using Owin;

using System;

using System.Web.Http;

namespace OwinBlog

{

public class Startup

{

public void Configuration(IAppBuilder appBuilder)

{

HttpConfiguration config = new HttpConfiguration();

config.Routes.MapHttpRoute(

name: "DefaultApi",

routeTemplate: "api/{controller}/{id}",

defaults: new { id = RouteParameter.Optional }

);

appBuilder.UseWebApi(config);

}

}

}


下面我们编写一个WebAPI的控制器,代码如下:


using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Net.Http;

using System.Web.Http;

namespace OwinBlog

{

public class BlogController : ApiController

{

// GET api/

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部