ASP.NET WebApi 入门

今天参照微软官方(http://www.asp.net)学习了WebApi,在这里摘录如下:

前言

HTTP 不只是为了生成 web 页面。它也是一个强大的平台,可以建设公开服务和数据的 Api。HTTP
是简单、 灵活,它似乎可以无处不在。你能想到的几乎任何平台都可以有一个 HTTP 库,因此,HTTP 服务可以应用到广泛的客户端,如浏览器、
移动设备和传统的桌面应用程序。

ASP.NET Web API 是用于生成 web Api 在.NET 框架上的框架。在本教程中,您将使用
ASP.NET Web API 创建的 web API 返回的产品列表。

创建项目

创建Web空模版项目,选WebAPI核心文件,如图:

添加模型

在Models文件夹下,创建一个Product.cs:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

namespace
ApiDemo01.Models

{

    /// <summary>产品实体类</summary>

    public
class Product

    {

        /// <summary>产品ID</summary>

        public
int ID { get; set; }

        /// <summary>产品名称</summary>

        public
string Name { get; set; }

        /// <summary>产品类别</summary>

        public
string Category { get; set; }

        /// <summary>产品价格</summary>

        public
decimal Price { get; set; }

    }

}

注:为了VS支架识别到实体类,记得先生成一下项目。

添加控制器

  在Controllers文件夹下,使用支架:

支架自动生成一些操作代码,这里修改后,如下:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

using
ApiDemo01.Models;

using
System.Collections.Generic;

using
System.Linq;

using
System.Web.Http;

namespace
ApiDemo01.Controllers

{

    public
class ProductController : ApiController

    {

        //模拟数据

        List<Product> pList = new
List<Product>

        {

            new
Product{ID=1, Name="Dell", Category="电脑"
, Price=3500 },

            new
Product{ID=2, Name="Apple", Category="手机"
, Price=5500 },

            new
Product{ID=3, Name="HP", Category="电脑"
, Price=3000 }

        };

        //获取产品集合

        public
IEnumerable<Product> GetProducts()

        {

            return
pList;

        }

        //根据产品ID获取一个产品

        public
IHttpActionResult GetProduct(int
id)

        {

            var
product = pList.FirstOrDefault((p) => p.ID == id);

            if
(product == null)

            {

                return
NotFound();

            }

            return
Ok(product);

        }

    }

}

  注:这里没有读取数据库方式,使用集合初始化器。

安装Jquery

要使用到AJAX请求,这里先安装Jquery库:

注:你也可以复制下载过的jquery。

创建展示页面

在项目根目录下添加一个Index.html页面,代码如下:

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8"
/>

    <title>产品页</title>

</head>

<body>

    <div>

        <h2>所有产品</h2>

        <ul id="products"
/>

    </div>

    <div>

        <h2>根据产品ID查找</h2>

        <input type="text"
id="prodId"
/>

        <input type="button"
value="Search"
onclick="find();"
/>

        <p id="product"
/>

    </div>

    <script src="Scripts/jquery-2.1.0.js"></script>

    <script>

        var
uri = ‘api/product‘;

        $(document).ready(function () {

            $.getJSON(uri)

                .done(function (data) {

                    // 请求成功

                    $.each(data, function (key, item) {

                        $(‘<li>‘, { text: formatItem(item) }).appendTo($(‘#products‘));

                    });

                });

        });

        function formatItem(item) {

            return
item.Name + ‘: $‘
+ item.Price;

        }

        function find() {

            var
id = $(‘#prodId‘).val();

            $.getJSON(uri + ‘/‘
+ id)

                .done(function (data) {

                    $(‘#product‘).text(formatItem(data));

                })

                //请求失败

                .fail(function (jqXHR, textStatus, err) {

                    $(‘#product‘).text(‘Error: ‘
+ err);

                });

        }

    </script>

</body>

</html>

  注:Jquery写AJAX方法可以很多种!

预览

浏览Index.html页面,并输入查找,得到下面结果:

使用IE开发人员工具(按F12),看一下请求头:

注:WebApi默认传递数据会序列化json格式,客户端也无需写反序列化代码。(至于它如何做的,在后面介绍再说。)

时间: 2024-10-16 07:01:08

ASP.NET WebApi 入门的相关文章

ASP.NET WebApi 增删改查

本篇是接着上一篇<ASP.NET WebApi 入门>来介绍的. 前言 习惯说 CRUD操作,它的意思是"创建. 读取. 更新和删除"四个基本的数据库操作.许多 HTTP 服务通过REST的 Api 进行CRUD 操作.在本教程中,生成非常简单的 web API 来管理产品的列表.每个产品将包含名称. 价格和类别,再加上一个产品 id.访问Uri对应如下: 行动 HTTP 方法 相对 URI 获取所有产品的列表 GET /api/Product 根据ID得到一个产品 GET

Asp.Net Core WebAPI入门整理(三)跨域处理

一.Core  WebAPI中的跨域处理  1.在使用WebAPI项目的时候基本上都会用到跨域处理 2.Core WebAPI的项目中自带了跨域Cors的处理,不需要单独添加程序包 3.使用方法简单 二.使用实例 1.全局配置中启用跨域处理,命名为'any',任何都可以访问 public void ConfigureServices(IServiceCollection services) { //配置跨域处理 services.AddCors(options => { options.AddP

Asp.Net Core WebAPI入门整理(二)简单示例

一.Core WebAPI中的序列化 使用的是Newtonsoft.Json,自定义全局配置处理: // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //使用IMvcBuilder 配置Json序列化处理 services.AddMvc()

Asp.Net Core WebAPI入门整理(一)

一.Asp.Net Core  WebAPI 1.目前版本是v1.1 2.默认路由处理和Asp.Net WebAPI有些 区别了,现在使用的是控制器路由[Route("api/Menu")]和请求方式路由[HttpGet].[HttpGet("{id}")]结合的 方式.直接在控制器和Action上使用方法注释. 3.从项目结构依赖上看 Asp.Net Core MVC项目其实已经包含了WebAPI 二.使用Visual Studio 2017创建Asp.Net C

ASP.NET MVC4入门到精通系列目录汇总(转)

序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别提性能了,问下数据优化经验,除 了回答加索引基本就没下文了.当然,一些过去N年都是做ASP.NET WebForm开发的,不熟悉MVC,那也没

ASP.NET MVC4入门到精通系列目录汇总

http://www.cnblogs.com/jiekzou/p/4772273.html ************************ 序言 最近公司在招.NET程序员,我发现好多来公司面试的.NET程序员居然都没有 ASP.NET MVC项目经验,其中包括一些工作4.5年了,甚至8年10年的,许多人给我的感觉是:工作了4.5年,Web开发依旧停留在拖控件的水平,最最基本的算 法,递归.排序(我不要求快速排序,你会冒泡就行了)都不会,数据库方面,很基础的SQL都写不出,分组过滤也不会,更别

ASP.NET Core入门(一)

大家好,很荣幸您点了开此篇文章,和我一起来学习ASP.NET Core,此篇文字为<ASP.NET Core入门>系列中的第一篇,本系列将以一个博客系统为例,从第一行代码,到系统发布上线(linux).如有错误,请联系我,让我们共同成长,进步,谢谢.下面进入正题: 首先,看到这篇文章可能是一位新手,下面由我先介绍下ASP.NET Core: ASP.NET Core 是一个新的开源和跨平台的框架,用于构建如 Web 应用.物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序.

ASP.NET SignalR入门

前言 之前在培训ASP.NET WebAPI的时候有提过SignalR这个技术,但当时只是讲了是用来做什么的,并没有多说.因为自己也是画图找资料的时候见到的.后来当一直关注的前端大神贤心发布LayIM2.0之后,于是对Web聊天产生了兴趣.那么在.NET平台下的Web聊天有哪些呢?查找资料发现了ASP.NET SignalR.于是乎...So...Just do it! 简介 按照惯例,先介绍一下什么是SignalR.简单的说,ASP .NET SignalR 是一个ASP .NET 下的类库,

22、ASP.NET MVC入门到精通——搭建项目框架

本系列目录:ASP.NET MVC4入门到精通系列目录汇总 前面的章节,说了ASP.NET MVC项目中常用的一些技术和知识点,更多的是理论上面的东西,接下来,我将通过一个简单的OA项目来应用我们之前涉及到的一些技术,为了兼顾初学者,所以我尽量把操作步骤说得足够详细.(本来想用VS2015来演示MVC5开发的,无奈家里的笔记本是11年2月份的老爷机了,一直未曾舍得换,因为配置的缘故,笔记本不堪负重,难以安装最新版本的开发工具,只装了VS2012,当然,还有一个原因就是现在公司也是使用VS2012