Web APi入门之Self-Host(二)

摘要:
接下来,让我们谈谈WebApi跨域。

这篇来讲讲WebApi的自托管,WebApi可以托管到控制台/winform/服务上,并不是一定要依赖IIS才行。

1、首先新建控制台项目,在通过Nuget搜索Microsoft.AspNet.WebApi.SelfHost

Web APi入门之Self-Host(二)第1张

2、建立实体类

1     public classProduct
2 {
3         public int Id { set; get; }
4         public string Name { set; get; }
5         public string Description { set; get; }
6     }

3、创建WebApi控制器,继承ApiController

1     public classHomeController : ApiController
2 {
3         static List<Product> modelList = new List<Product>()
4 {
5             new Product(){Id=1,Name="电脑",Description="电器"},
6             new Product(){Id=2,Name="冰箱",Description="电器"},
7 };
8 
9         //获取所有数据
10 [HttpGet]
11         public List<Product>GetAll()
12 {
13             returnmodelList;
14 }
15 
16         //获取一条数据
17 [HttpGet]
18         public Product GetOne(intid)
19 {
20             return modelList.FirstOrDefault(p => p.Id ==id);
21 }
22 
23         //新增
24 [HttpPost]
25         public boolPostNew(Product model)
26 {
27 modelList.Add(model);
28             return true;
29 }
30 
31         //删除
32 [HttpDelete]
33         public bool Delete(intid)
34 {
35             return modelList.Remove(modelList.Find(p => p.Id ==id));
36 }
37 
38         //更新
39 [HttpPut]
40         public boolPutOne(Product model)
41 {
42             Product editModel = modelList.Find(p => p.Id ==model.Id);
43             editModel.Name =model.Name;
44             editModel.Description =model.Description;
45             return true;
46 }
47     }

4、在Program的Main方法中加上如下代码

1         static void Main(string[] args)
2 {
3             var config = new HttpSelfHostConfiguration("http://localhost:5000"); //配置主机
4 
5             config.Routes.MapHttpRoute(    //配置路由
6                 "API Default", "api/{controller}/{id}",
7                 new { id =RouteParameter.Optional });
8 
9             using (HttpSelfHostServer server = new HttpSelfHostServer(config)) //监听HTTP
10 {
11                 server.OpenAsync().Wait(); //开启来自客户端的请求
12                 Console.WriteLine("Press Enter to quit");
13 Console.ReadLine();
14 }
15         }

5、本人机器是win10,如果直接运行是会报错的

Web APi入门之Self-Host(二)第2张

解决方法:打开项目路径找到项目名.exe文件右键以管理员身份运行

Web APi入门之Self-Host(二)第3张

6、通过url方式访问http://localhost:5000/api/home

Web APi入门之Self-Host(二)第4张

通过winform、服务等方式托管的话本篇不再讲述,方式都类似,我觉得WebApi托管在IIS上是好于其他方式的,用控制台的话演示还是不错的。

下篇讲下WebApi跨域。

免责声明:文章转载自《Web APi入门之Self-Host(二)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇shell脚本批量注释Idea 软件使用快捷键归纳01下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

爱快路由器的一些注意事项硬件配置+多线负载均衡

以下数据仅供参考:注意:磁带载体的数量因使用环境和带宽大小的不同而不同。此外,请注意32位系统的安装。最大内存为4G,最大内存为3G-----硬盘------安装“爱快路由”时对硬盘的最低要求为1G以上。...

C# 没落了吗?

首先,这个数字--------------------------------------------C#是否正在衰落与微软的整个平台密切相关。近年来,使用C#的人越来越少,这也是因为越来越少的人专门为Microsoft平台开发产品。现在是移动时代,微软基本上错过了互联网和移动互联网这两波浪潮。现在生活不容易。在软件工程中,人们常说“唯一不变的就是改变本身”...

SQLServer2008/2012 安装、添加sa用户和密码、多实例安装、修改端口, 重启生效

因为我们无法使用sa用户登录,所以只能使用系统登录。登录后,我们需要修改相关属性。右键单击数据库,然后单击属性。在这个sa的登录属性对话框中,我们首先需要设置这个用户的密码。由于此用户名是系统的用户,我们可以直接填写密码,然后再次确认密码。然后在对话框中,单击左上角的第二个属性服务器角色。这是您要实现的添加用户的角色。...

ArchLinux安装英伟达显卡驱动

Optimus manager qt Install novausudopacman-Sxf86-video novau右键单击导航栏上的Intel图标,选择列表中的设置功能,单击左侧的Optimus,然后在右侧窗口中选择nouveau作为切换方法。右键单击导航栏上的Intel图标以选择要使用的图形卡类型。在我选择Nvidia显卡后,您需要注销并再次登录才能...

一分钟制作U盘版BT3

一分钟生产BT3U磁盘版本方便、快捷、简单、无效且不可退款。BT3磁盘版本,大约694MB,可以直接烧录,然后用CD引导进入BT3。连接如下:http://ftp.heanet.ie/mirrors/backtrack/bt3-final.isoU磁盘版本Bt3,约783MB,连接为:http://cesium.di.uminho.pt/pub/backtr...

应用程序-特定 权限设置并未向在应用程序容器 不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户 NT AUTHORITYSYSTEM SID (S-1-5-18)授予针对 CLSID 为 {D63B10C5-BB46-4990-A94F-E40B9D520

此安全权限可以使用组件服务管理工具进行修改。根据APPID为{9CA88EE3-ACB7-47C8-AFC4-AB702511C276}在注册表中找到HKEY_CLASSES_ROOTAppID{9CA88EE3-ACB7-47c8-AFC4-AB702511C276}右键选择权限:加入SYSTEM用户并赋予完全控制权限:如果在注册表中没有权限添加用户,则需...