zoukankan      html  css  js  c++  java
  • Web APi入门之Self-Host(二)

     

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

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

    2、建立实体类

    复制代码
    1     public class Product
    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 class HomeController : 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             return modelList;
    14         }
    15 
    16         //获取一条数据
    17         [HttpGet]
    18         public Product GetOne(int id)
    19         {
    20             return modelList.FirstOrDefault(p => p.Id == id);
    21         }
    22 
    23         //新增
    24         [HttpPost]
    25         public bool PostNew(Product model)
    26         {
    27             modelList.Add(model);
    28             return true;
    29         }
    30 
    31         //删除
    32         [HttpDelete]
    33         public bool Delete(int id)
    34         {
    35             return modelList.Remove(modelList.Find(p => p.Id == id));
    36         }
    37 
    38         //更新
    39         [HttpPut]
    40         public bool PutOne(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,如果直接运行是会报错的

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

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

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

    下篇讲下WebApi跨域。

  • 相关阅读:
    webpack前端构建工具学习总结(一)之webpack安装、创建项目
    当执行 import vue from 'vue' 时发生了什么?
    WEBSTORM新建VUE类型文件设置
    基于vue-cli搭建HelloWorld项目
    vue-cli脚手架安装
    浏览器的重绘和回流
    strcpy和strncpy用法和区别
    &与&&有什么区别?
    状态机实践入门
    12864点阵液晶显示模块的原理和实例程序(HJ12864M-1)
  • 原文地址:https://www.cnblogs.com/scoluo/p/10191127.html
Copyright © 2011-2022 走看看