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

转载 2016年09月23日 18:03:49

使用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
4
0
« 上一篇:WPF在代码中创建DataTemplate时候的异常
» 下一篇:使用ASP.Net WebAPI构建REST服务(二)——路由
posted on 2014-05-02 17:18 天方 阅读(14681) 评论(0) 编辑 收藏


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

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

ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要阅读英文的内容;而像我这样的英文小白就只能借助翻译工具才能理解个大概;不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现IBM的云...

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门

http://www.cnblogs.com/fzrain/p/3510035.html  使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——...

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing

原文: 系列导航地址 http://www.cnblogs.com/fzrain/p/3490137.html 题外话:由于这个技术点是新学的,并不属于原系列,但借助了原系列的项目背景,故...
  • yw1688
  • yw1688
  • 2016年04月03日 23:23
  • 223

使用ASP.NET Web Api构建基于REST风格的服务实战系列教程

最近发现web api很火,园内也有各种大神已经在研究,本人在asp.net官网上看到一个系列教程,原文地址:http://bitoftech.net/2013/11/25/detailed-tuto...

《Asp.Net Web API》-----webApi的简单使用

前言:在公司工作的时候,经理跟我说我们后台用的是WebApi技术,说它是一种轻量级的WCF,我以前用过WCF,但是对于WebApi有点不熟悉,但是经理说和WCF相似,我渐渐的对着门技术变得渐渐的好奇起...

使用ASP.NET web API创建REST服务(二)

Creating a REST service using ASP.NET Web API A service that is created based upon the architectu...

使用Asp.net WebAPI 快速构建后台数据接口

现在的互联网应用,无论是web应用,还是移动APP,基本都需要实现非常多的数据访问接口。其实对一些轻应用来说Asp.net WebAPI是一个很快捷简单并且易于维护的后台数据接口框架。下面我们来快速构...

Asp.net WebApi 项目示例(增删改查)

1.页面运行效果

关于AJAX跨域调用ASP.NET MVC或者WebAPI服务的问题及解决方案

一、进本地网站用localhost进去后不能获取数据,而用127.0.0.1进去则可以 解决办法:1.打开IIS,选择Default Web Site,   再选择HTTP响应标头 ...
  • dz45693
  • dz45693
  • 2016年02月03日 10:26
  • 1510
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用ASP.Net WebAPI构建REST服务(一)——简单的示例
举报原因:
原因补充:

(最多只允许输入30个字)