zoukankan      html  css  js  c++  java
  • 使用ASP.Net WebAPI构建REST服务(一)——简单的示例

    由于给予REST的Web服务非常简单易用,它越来越成为企业后端服务集成的首选方法。本文这里介绍一下如何通过微软的Asp.Net WebAPI快速构建REST-ful 服务。

    首先创建一个Asp.Net Web应用程序(我这里用的是Visual Studio 2013,它已经内置了Web API2)。

        

    在出来的模板中选择Empty(空项目),并勾选WebAPI。点击确定后,就创建了一个空的WebAPI服务。

        

    此时只有一个空项目,还没有任何功能,在进行下一步之前,首先我们来看一下REST的基本操作模型,大致可以分为如下四种:

    • POST — 创建资源
    • GET — 检索资源
    • PUT — 更新资源
    • DELETE — 删除资源

    非常经典的CRUD模型。在Web API中实现这样一个的模型是非常简单的,直接使用向导建一个Controller即可

        

        

    如果用传统的向导,记得把向导后面的那个1给去掉:

    默认的模板内容如下:

        public class ValuesController : ApiController
        {
            // GET api/<controller>
            public IEnumerable<string> Get()
            {
                return new string[] { "value1", "value2" };
            }

            // GET api/<controller>/5
            public string Get(int id)
            {
                return "value";
            }

            // POST api/<controller>
            public void Post([FromBody]string value)
            {
            }

            // PUT api/<controller>/5
            public void Put(int id, [FromBody]string value)
            {
            }

            // DELETE api/<controller>/5
            public void Delete(int id)
            {
            }
        }

    这其实已经帮我们实现了一个最基本的服务了,不过这个服务中只实现了Get,它支持如下两种中方式的URL访问(其它的方式也能访问,但没有具体的效果):

    • api/values        访问所有的Value列表    
    • api/values/{id}        根据ID访问Value

    按Ctrl + F5中执行,在浏览器中输入相应的地址即可看到结果

        

    下面我们要做的就是完善它,实现一个简单的查询功能,这里我引用了微软官方的一个例子:

    public class ProductsController : ApiController
    {
            Product[] products = new Product[]
            {
                new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
                new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
                new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
            };

            public IEnumerable<Product> Get()
            {
                return products;
            }

            public IHttpActionResult Get(int id)
            {
                var product = products.FirstOrDefault((p) => p.Id == id);
                if (product == null)
                {
                    return NotFound();
                }
                return Ok(product);
            }
        }

        public class Product
        {
            public int Id { get; set; }
            public string Name { get; set; }
            public string Category { get; set; }
            public decimal Price { get; set; }
        }

    此时,我们就可以在浏览器中看到结果了(由于Controller改名字了,此时的地址就变成了api/products)

        

    到此为止,一个基于Asp.net Web API的 简单的REST Web服务就构建完成了,由于篇幅所限,这里就不做更多的介绍了,跟多信息可以参看微软官方文档:Getting Started with ASP.NET Web API 2。另外,如果想对REST有更深入的了解的话,可以看看infoq的这篇文章:深入浅出REST。关于Asp.net Web API其它内容,我后续大概还会陆续写几篇文章来介绍它。

  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/Jeely/p/10955954.html
Copyright © 2011-2022 走看看