第一个WebAPI项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第一个WebAPI项目相关的知识,希望对你有一定的参考价值。

(1)新建一个ASP.NET MVC项目,取名为:MyMvcWebAPIDemo,项目类型选择WebAPI。

(2)在Models中新增一个类,取名为:Product,作为我们要测试的实体模型。

(3)在Controllers中新增一个控制器,并选择“空WebAPI”类型模板,取名为:ProductController。

技术分享

(4)为了方便进行数据测试,这里定义一个静态的产品集合。当然,在实际应用中,我们可能会从数据库中读取数据集合,并对其进行增删查改及各种查询操作。

(5)定义一些方法,用于对产品集合的各种操作:

一般来说,Http的四种访问类型中,Get:一般用作查询,多次操作得到结果一致;Post:一般用于修改、添加多次重复操作得到结果不一致。Put:一般用于修改,多次操作得到结果一致。Delete:一般用于删除数据,多次操作得到结果一致。

现在,我们来看一下我们写的这些方法:

①用于GET方式获取的方法有:

GetAllProducts用于获取所有产品的集合;GetProductById用于返回指定Id的产品对象;

GetProductByName用户返回指定Name的产品对象;GetAllProductsByCategory则用户返回指定Category(种类)的产品集合;

②用于POST方式的方法有:

PostProduct用于增加一个产品信息;

③用于PUT方式的方法有:

PutProduct用于修改一个指定的产品信息;

④用于DELETE方式的方法有:

DeleteProduct用于删除一个选择的产品信息;

以上GET、POST、PUT、DELETE则构成了我们通过HTTP协议对资源的各种操作了。具体的代码,这里我就不过多赘述,相信大家都能看懂。

(6)此时,我们有了一个能工作的Web API了。该控制器上的每个方法都映射到一个URI,例如下表中所示的前三个方法所对应的URI:

Controller Method
控制器方法
URI
GetAllProducts /api/product
GetProductById /api/product/id
GetProductsByCategory /api/product/?category=category

客户端可以通过URI来访问我们的控制器已达到对资源的操作,那么,我们可以设计一个页面来发送AJAX请求来实践一下。

(7)在Views中的默认Home/Index这个页面中,加入以下代码:

通过调试运行,可以看到以下页面效果,并可以看到,由于我们在页面中加入了获取产品列表的GET请求,于是产品信息被加载到了页面中:

技术分享

其对应的JS语句为:可以看到,我们通过api/Product调用了API控制器中的GetAllProducts方法,获取了所有产品信息。

(8)下面我们可以来试试其他的API方法:

技术分享

3.4 第一个RestClient客户端项目

有了我们上面的WebAPI项目的支持,我们可以在客户端(如:WindowsForm项目、Windows Phone项目等等)对WebAPI项目中的资源进行访问和操作,现在我们就来实现一个RestClient控制台项目模拟一个客户端对WebAPI发起HTTP访问请求。

(1)新建一个控制台项目,取名为:MyConsoleRestClientDemo。

(2)新建一个类,取名为:RestClient.cs。它封装了我们常用的HTTP操作,如GET、POST、PUT、DELETE方式。

(3)在Program.cs中的Main方法中,调用RestClient类为我们提供的方法对WebAPI服务器(这里是本机:http://localhost:8080/)发起访问:

(4)调试运行,查看访问结果如下:可以看出,返回的均为JSON格式的数据,和我们在浏览器中访问指定URI的结果一致。

技术分享

3.5 初探小结

ASP.NET Web API 是一种框架,用于轻松构建可以访问多种客户端(包括浏览器和移动设备)的 HTTP 服务。 ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。


以上是关于第一个WebAPI项目的主要内容,如果未能解决你的问题,请参考以下文章

WebAPI实例--第一个API

Web API系列之二WebApi基础框架搭建

如何调用带有认证服务的webapi

部署IIS调试WebApi

第一个webapi及swagger

第一个Web API应用