使用ASP.Net WebAPI构建REST服务(一)——简单的示例
来源:互联网 发布:中英文即时口译软件 编辑:程序博客网 时间:2024/05/17 01:32
使用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 WebAPI构建REST服务(二)——路由
- 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
- 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
- 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【三】——Web Api入门
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程
- 《Asp.Net Web API》-----webApi的简单使用
- 【WebApi】————.net WebApi开发(一)
- ASP.NET5 REST API使用示例——基于云平台+云服务打造自己的在线翻译工具
- Asp.net WEBAPI 简单的OAUTH认证
- asp.net mvc 的webApi (一)自己手动创建
- WebAPI 身份认证解决方案——Phenix.NET企业应用软件快速开发平台.使用指南.21.WebAPI服务(一)
- 使用Asp.net WebAPI 快速构建后台数据接口
- ASP.NET MVC的WebApi使用
- 使用restify构建纯粹的rest服务
- Asp.net WebApi 项目示例(增删改查)
- Asp.net WebApi 项目示例(增删改查)
- 高性能流媒体服务器-nebula之数据结构(1)--hash table介绍
- sublime注册码
- linux内存源码分析 - 伙伴系统(初始化和申请页框)
- [完]PHP文件下载 下载GET值中含有中文字符的文件,保存中文文件名,文件不能打开,遇到的编码问题
- 双目视觉
- 使用ASP.Net WebAPI构建REST服务(一)——简单的示例
- Docker源码分析(一):Docker架构
- ConstraintLayout约束布局的概念与使用
- 初学Hadoop之图解MapReduce与WordCount示例分析
- openstack调试数据库语句
- hdu2602 Bone Collector 01背包教学题
- Fiddler教程
- 基于anyrtc的sdk实现直播连麦互动
- HBase高性能复杂条件查询引擎