您的位置:首页 > 编程语言 > ASP

使用ASP.Net WebAPI构建REST服务(一)——简单的示例

2016-09-23 18:03 645 查看

使用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其它内容,我后续大概还会陆续写几篇文章来介绍它。

分类:
ASP.Net

好文要顶
关注我
收藏该文







天方
关注 - 0
粉丝 - 496

+加关注

4
0

«
上一篇:WPF在代码中创建DataTemplate时候的异常
»
下一篇:使用ASP.Net WebAPI构建REST服务(二)——路由

posted on 2014-05-02 17:18
天方 阅读(14681) 评论(0)

编辑
收藏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: