初探ASP.NET Web API

定义:
ASP.NET Web API is a framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices. ASP.NET Web API is an ideal platform for building RESTful applications on the .NET Framework.

意思是,ASP.NET Web API是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备。 ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。

那么RESTful又是什么?
简单的解释,RESTful属于一种设计风格,REST中的GET,POST,PUT DELETE来进行数据的增删改查,如果开发人员的应用程序符合RESTful原则,则它的服务称为"RESTful风格应用服务"。
get:获取
post:添加
put:修改
delete:删除
下面进行简单实验
步骤1:创建工程
1.创建一个ASP.NET Web API应用程序
在这里插入图片描述步骤2:代码关系分析
1.默认生成的文件夹。

public class ValuesController : ApiController
    {
        // GET api/values
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }

        // GET api/values/5
        public string Get(int id)
        {
            return "value";
        }

        // POST api/values
        public void Post([FromBody]string value)
        {
        }

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }
    }

2.添加实验数据

public class ValuesController : ApiController
    {
        // Set mock data
        List<string> mockDataList = new List<string>()
        {
            "Product A","Product B","Product C","Product D","Product E"
        };

        // GET api/values
        public IEnumerable<string> Get()
        {
            return mockDataList;
        }

        // GET api/values/5
        public string Get(int id)
        {
            return mockDataList[id];
        }

        // POST api/values
        public void Post([FromBody]string value)
        {
            mockDataList.Add(value);
        }

        // PUT api/values/5
        public void Put(int id, [FromBody]string value)
        {
            mockDataList[id] = value;
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
            mockDataList.RemoveAt(id);
        }
    }

步骤3:Web API 客户端(只里的客户端不是访问上面的服务端的代码,这里仅仅体现一种Web API 使用的一种分方式,本人在总结 自己的学习笔记)

static void Main(string[] args)
        {
            RunAsync().Wait();
        }

        static async Task RunAsync()
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://localhost:8077/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));

                string xmlString = await client.GetStringAsync("api/News/GetAllNews");
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(xmlString);
                XmlNodeList nodeList = xmlDoc.GetElementsByTagName("News");
                foreach (XmlNode node in nodeList)
                {
                    Console.WriteLine("新闻ID:" + node.SelectSingleNode("Id").InnerText);
                    Console.WriteLine("新闻标题:" + node.SelectSingleNode("Title").InnerText);
                    Console.WriteLine("新闻内容:" + node.SelectSingleNode("Content").InnerText);
                    Console.WriteLine("作者:" + node.SelectSingleNode("Author").InnerText);
                    Console.WriteLine("新闻发布时间:" + node.SelectSingleNode("CreateTime").InnerText);
                    Console.WriteLine("======================");
                }
                Console.ReadKey();
            }
        }

运行效果
webapi客户端调用举例简单分析
web api 客户端调用分析关于:async,和await就是 异步调用的一种方式。
web api 本质上是一种特殊的http服务。
我们通常的web服务是什么样的呢?访问一个地址返回一定格式的数据。
那么web api 和通常的web 有啥不同。本质生也是访问一个地址,然后返回数据。
差别在于,返回的数据,我们不是用浏览器解释,而是把我们关心数据用一种格式解析,当成我们调用函数的返回值。
说白了就是把向地址要数据的过程,变成了调用函数的过程。
关于web api 的特之处,体现在http增加了几个通讯方法(OPTIONS, PUT, DELETE, TRACE 和 CONNECT)。这位以api的方式使用http协议,提供了方便,向前面用的DELETE,和 PUT。
PUT:从客户端向服务器传送的数据取代指定的文档的内容。

web api的用途
强调两个关键点,即可以对接各种客户端(浏览器,移动设备),构建http服务的框架。
web api在.net 架构中的位置Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服。务。
**web api 应用场景原理补充
1.HTTP
超文本传输协议 (HTTP-Hypertext transfer protocol) 是一种详细规定了浏览器和万维网服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
 HTTP协议有下面三个基本特点:
 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
无状态:无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
相对于Web API来说,HTTP不只是为了生成Web页面,它也是一个强大的平台建设公开服务和数据的API。HTTP是简单、 灵活和无处不在,因此几乎任何平台都可以有一个HTTP库,因此,HTTP服务可以到达范围广泛的客户端,包括浏览器、移动设备和传统的桌面应用程序。
2.RESTful
RESTful架构概念是Fielding提出的,Fielding这号人物就是上面HTTP协议的主要设计者之一。我们先看下RESTful这个词,ful是跟在名词之后,表示程度,什么什么的,例如helpful乐于助人的,因此我们可以看出符合REST的架构就可以称为RESTful,接着我们看下REST,全称为“Representational State Transfer”,意为“表现层状态转化”。
客户端通过四个HTTP动词(PUT、GET、POST和DELETE),对服务器端资源进行操作,实现"表现层状态转化"。

应用连接:https://www.cnblogs.com/mejoy/p/6402821.html
应用连接:https://www.cnblogs.com/guyun/p/4589115.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值