上篇博客讲解rest服务开发时,曾经提到过asp.net mvc中的rest api,由于篇幅原因,没有在上篇博客中进行讲解,这里专门拿出来进行讨论。还是一样引用上次的案例,用asp.net 提供的web api来进行IP地址归宿地查询接口的开发。
由于我机器装的是win8企业版操作系统,VS版本是2012,因此我们选择使用VS自带的MVC4模版中的Web API来创建一个项目。
点击确定后,VS会自动为我们创建一个完整的可运行的ASP.NET Web API的项目。
从项目的目录结构可以看出,ASP.NET Web API与ASP.NET MVC项目的结构几乎一致。我们删除为我们默认创建并打开的ValuesController文件(示例性文件,可以参考)。
既然要打造一个IP地址查询服务接口,为了跟上文的服务形式一致,我们还是使用GET请求方式的服务,不过我们这次使用MVC中的Web API来实现。
首先在Models文件夹中建立一个Address模型类。
namespace MvcWebApi.Models
{
public class Address
{
public string IPAddress { get; set; }
public string Province { get; set; }
public string City { get; set; }
}
}
接着我们在Controllers文件夹下建立一个IPAddressController控制器,需要注意的是,这个IPAddressController一定要继承自ApiController类,这样服务才能暴露出来。
namespace MvcWebApi.Controllers
{
public class IPAddressController : ApiController
{
private static IList<Address> addresses = new List<Address>
{
new Address(){ IPAddress="1.91.38.31", Province="北京市", City="北京市" },
new Address(){ IPAddress = "210.75.225.254", Province = "上海市", City = "上海市" },
};
public IEnumerable<Address> GetIPAddresses()
{
return addresses;
}
public Address GetIPAddressByIP(string IP)
{
return addresses.FirstOrDefault(x => x.IPAddress == IP);
}
}
}
只要做上面两步就可以运行这个项目了,我们按Ctrl+F5运行整个项目,出现了如下的页面。
我们点击右上角的API链接。
可以看到我们定义的Web API的接口的使用方法以及说明。
既然是服务,能够被其它程序调用就需要一个持续保障它运行的环境,我们可以将这个写好的Web API的项目发布到IIS当中。
我们可以使用VS自带的发布功能进行发布,并映射到IIS应用程序目录当中。
我们点击IIS右侧的浏览,看看服务有没有能够正常运行。
我们按照文档的提示,我们在地址栏输入http://192.168.0.2/webapi/api/ipaddress。
可以看到,我们收到了Web API定义的服务提供的数据。同样的我们试一下另外一个接口方法。
OK,这样就好了。
但是如果我们需要返回JSON格式怎么办呢?有个简便的方法,在Global.asax.cs文件中,添加一个方法即可。
关于这段代码的原因,可以参考:http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx,这里不重复。
我们运行这个项目后,重新发布。
当我们再次在浏览器中运行时,就可以看到默认返回的是JSON格式了(IE默认就是JSON)。
ASP.NET MVC Web API就开发好了,至于在C#程序中怎么调用,可以参考我上篇博客中的代码。如果要在页面中调用,可以通过JQuery等JS库请求URL即可。
参考资料:
http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api
http://blog.miniasp.com/post/2012/10/12/ASPNET-Web-API-Force-return-JSON-format-instead-of-XML-for-Google-Chrome-Firefox-Safari.aspx
分享到:
相关推荐
第1章 S101 一个简单的ASP.NET Web API应用 第2章 S201 通过路由实现请求地址与.aspx页面的映射 S202 基本路由注册 S203 在路由注册中指定约束 S204 针对现有物理文件的路由(关闭) S205 针对现有物理文件的...
ASP.NET WebAPI官方示例,包括基本使用的示例和自定义扩展的示例等
《ASP.NET Web API 2框架揭秘》一本注重实证的书,功能各异、多达120个可供下载的示例,大量最佳实践与实用性扩展,可直接用于解决实际开发问题。全新的学习方法,通过完整论证来实现彻底的融会贯通。本书可以作为讲...
【ASP.NET编程知识】通过HttpClient 调用ASP.NET Web API示例.docx
ASP.NET Web API 2框架揭秘是一本注重实证的书,功能各异、多达120个可供下载的示例,大量实践与实用性扩展,可直接用于解决实际开发问题。全新的学习方法,通过完整论证来实现彻底的融会贯通。本书可以作为讲设计...
WebAPI:client客户端post提交签名数据/apiServer服务端返回json数据交互 客户端: Web/ApiClient/queryToken.aspx API服务端:Web/Api/ApiServe/queryToken.aspx 客户端(Web/ApiClient/queryToken.aspx )以post方式...
【ASP.NET编程知识】.NET或.NET Core Web APi基于tus协议实现断点续传的示例.docx
ASP.NET Web API 2框架揭秘》一本注重实证的书,功能各异、多达120个可供下载的示例,大量最佳实践与实用性扩展,可直接用于解决实际开发问题。全新的学习方法,通过完整论证来实现彻底的融会贯通。
本篇文章主要介绍了通过HttpClient 调用ASP.NET Web API示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
ASP.NET core webapi创建案例 _平台:windows (1)的案例 链接: https://blog.csdn.net/qq_36051316/article/details/85050688
.net core2.0 + Angular5 + WebAPI 实现增删改查的实例 执行压缩包里的query.sql创建数据库和表 需要的环境 1)VS2017 2).net core2.0 SDK 3)Node.js 9.0以上
XamarinWebAPI作者:Dave Voyles | 网址: 在Xamarin iOS应用中使用ASP.NET Web API的示例项目客观的本实验完成了在Visual Studio中创建ASP.NET Web API项目的过程,然后使用Xamarin编写了使用API的iOS应用。...
ASP.NET Web API具有与ASP.NET MVC类似的编程方式,ASP.NET Web API不仅仅具有一个完全独立的消息处理管道,而且这个管道比为ASP.NET MVC设计的管道更为复杂,功能也更为强大。下面创建一个简单的Web API项目,需要...
在做Web开发中,常常会遇到跨域的问题,到目前为止,已经有非常多的跨域解决方案...下面这篇文章主要给大家介绍了关于ASP.net WebAPI跨域调用问题的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
AspNetWebApiArticle, 代码库 ASP.NET WebApi文章的源代码 ASP.NET Web API 入门代码库文章的示例代码这个项目是上述文章的源代码,并提供一个小示例应用程序,演示 ASP.NET Web API的一些核心特性。 它包含了上述...
此PPT讲述了Asp.Net WebAPI及相关Web服务技术发展历史。 共80多页,Asp.Net WebAPI在讲到第36页的时候才会出现,因为这个技术不是凭空产生的,它有着自己的演变进化的历史。我们要先弄清它从哪里来的?然后再说它能...
主要介绍了支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程,需要的朋友可以参考下