1. 导言
随着 web 技术的发展, 现在各种框架, 前端的, 后端的, 数不胜数. 全栈工程师的压力越来越大. PC 端, pad 端, 移动端 App(安卓 / iOS)的发展, 使得前后端一体的开发模式十分笨重. 因此, 前后端分离是 Web 发展的趋势, 其中, RESTful API 是目前前后端分离的最佳实践, ASP.NET Web API 是在. NET Framework 上构建 RESTful 应用程序的理想平台. Web API 应用如下图所示.
2.ASP.NET Web API 介绍
ASP.NET Web API 是一个框架, 可以轻松构建 HTTP 服务, 覆盖广泛的客户端, 包括浏览器和移动设备. ASP.NET Web API 是在. NET Framework 上构建 RESTful 应用程序的理想平台. 其中, RESTful 属于一种设计风格, REST 中的 GET,POST,PUT DELETE 来进行数据的增删改查, 如果开发人员的应用程序符合 RESTful 原则, 则它的服务称为 "RESTful 风格应用服务".
ASP.NET Web API 核心的消息处理管道独立于 ASP.NET 平台, 比 ASP.NET MVC 设计的管道更为复杂, 功能也更为强大, 支持 Web Host 和 Self Host(任意类型的应用程序, 如控制台, Windows Form 应用程序, WPF 应用甚至 Windows Service)两种寄宿方式, 本文主要介绍第一种方式. Web API 整个生命周期如下图所示.
3. 手动搭建基本框架
Visual Studio 为我们提供了专门用于创建 ASP.NET Web API 应用的项目模板, 借助于此项目模板提供的向导, 我们可以 "一键式" 创建一个完整的 ASP.NET Web API 项目. 在项目创建过程中, Visual studio 会自动为我们添加必要的程序集引用和配置, 甚至会为我们自动生成相关的代码, 总之 - 句话: 这种通过向导生成的项目在被创建之后其本身就是 - 个可执行的应用. 笔者在此就不在演示自动创建的过程, 重点讲解手动搭建, 这样可以让我们更深入的了解 Web API 的运行原理.
(1)创建空的 ASP.NET Web 应用程序
在 VS2017 中, 选择 ASP.NET Web 应用程序(.NET Framework), 框架选择. NET Framework4.5, 如下图所示.
选择空项目, 同时去掉 MVC 及 Web API 选项, 如下图所示.
(2)通过 NuGet 下载安装 Microsoft.ASP.NET.API
右键项目, 选择[管理 NuGet 程序包] , 搜索 WebAPI, 选择 Microsoft.ASP.NET.API, 点击右侧[安装] 按钮, 完成安装, 如下图所示.
(3)添加全局应用程序类 Global.asax
右键项目, 添加新建项, 选择全局应用程序类, 如下图所示.
global.asax 是一个文本文件, 它提供全局可用代码. 这些代码包括应用程序的事件处理程序以及会话事件, 方法和静态变量. 有时该文件也被称为应用程序文件. 打开文件, 代码如下所示, 发现该文件包含了 Web 应用程序入口 Application_Start, 这和 WinForm 应用程序的 main 函数类似.
- namespace MyWebAPI
- {
- public class Global : System.Web.HttpApplication
- {
- protected void Application_Start(object sender, EventArgs e)
- {
- }
- protected void Session_Start(object sender, EventArgs e)
- {
- }
- protected void Application_BeginRequest(object sender, EventArgs e)
- {
- }
- protected void Application_AuthenticateRequest(object sender, EventArgs e)
- {
- }
- protected void Application_Error(object sender, EventArgs e)
- {
- }
- protected void Session_End(object sender, EventArgs e)
- {
- }
- protected void Application_End(object sender, EventArgs e)
- {
- }
- }
- }
(4)注册 Web API 路由
路由系统是请求消息进入 ASP.NET Web API 消息处理管道的第一道屏障, 其根本目的用于解析 URL 请求, 在后续的系列文章中会详细讲解, 这里就不深入讲解.
在 Application_Start 函数中注册 Web API 路由, 代码如下:
- protected void Application_Start(object sender, EventArgs e)
- {
- GlobalConfiguration.Configuration.Routes.MapHttpRoute(
- name: "DefaultApi",
- routeTemplate: "api/{controller}/{id}",
- defaults: new { id = RouteParameter.Optional });
- }
(5)添加 Web API 控制器
右键项目, 添加新建项, 选择 Web API 控制器类, 如下图所示.
打开 ValuesController.cs 文件, 发现该类直接继承与 ApiController, 且包含了 GET,POST,PUT DELETE 等 Action, 代码如下所示, 控制器在后续系列文章中会详细讲解, 这里也不过讲解.
- 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)
- {
- }
- }
(6)调用 Web API
运行程序 (自动创建 IIS 服务), 在地址栏中输入 http://localhost:52317/API/Values 调用了 ValuesController 中的 Get() 方法, Google 浏览显示的调用结果如下所示.
4. 总结
至此, 完成了 ASP.NET Web API 的基本介绍和手动构建 Web API 基本框架的详细步骤. 通过此博客读者可以更加深入的认识和了解 Web API, 文中若有不足之处, 还望海涵, 博文写作不易希望多多支持, 后续会更新更多内容, 感兴趣的朋友可以加关注, 欢迎留言交流!
来源: https://www.cnblogs.com/aizai846/p/10959306.html