目前开发还是习惯 WebForm
,不过体验过 MVC 各种强大功能后,例: Router、Action Filter、Model Binding,不想走回头路,所以决定在专案内导入 Web API
搭配 WebForm 使用。
新增 WebForm 网站并加入 Web API
1. 新增空白网站
点选 Visual Studio 右上角,档案 > 新增 > 网站或专案,这里网站或专案都可以,然后选择 ASP.NET 空白网站
。
2. 储存专案 .sln 档
网站建立完成后,点选全部储存,然后选择外层资料夹储存 .sln 专案档。
3. 将网站架设在 IIS 上
因为新增空白网站时,选择的是网站,网站执行必需架在 IIS 上,如果选择专案就不用,可以直接用 Visual Studio 执行。
架设网站步骤,开启 IIS 管理员,在 Default Web Site 上按右键选择新增应用程式,接着选择网站路径。
4. 加入组件参考
开启 Nuget 加入下列组件:
Microsoft.AspNet.WebApiMicrosoft.AspNet.WebApi.OwinMicrosoft.Owin.Host.SystemWeb5. 新增 App_Code 资料夹,并加入 Startup.cs
我们所有的.cs程式档,都会放在 App_Code 资料夹内,新增资料夹后加入 Startup.cs。
Startup.cs 程式码:
[assembly: OwinStartup(typeof(Core.Startup))]namespace Core{ public partial class Startup { public void Configuration(IAppBuilder app) { var config = new HttpConfiguration(); // Web API 路由 config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); app.UseWebApi(config); } }}
6. 新增 Web API Controller
在 App_Code 资料夹内,新增 Api 资料夹用来放 Controller,接着加入 TestController 测试 Web API 有没有正确运行。
TestController 程式码:
namespace Api{ [RoutePrefix("api/test")] public class TestController : ApiController { //测试API [HttpGet] [Route("live")] public bool Live() { return true; } }}
测试:
在浏览器输入 api 网址后,正确显示 api 的回传值。
专案结构:
结语
接下来会陆续分享 Web API 的使用心得,如有需要改进的地方,再麻烦各位大大指点。
※ 更新 2019/12/14
这系列介绍的是 Web Api 2 的用法,需要 .NET Framework 4.5 以上的版本
如果还停留在 .NET Framework 4.0 的朋友,可以参考下面这篇改用 Web Api 1,虽然功能没有后面的版本多,但总体来说差异不大。
连结: [C#][ASP.NET] 如何在 .NET Framework 4.0 加入 Web Api
参考文章
[ASP.NET] Web API in Web Form
使用 OWIN 自我装载 ASP.NET Web API 2
系列文章
[C#][ASP.NET] Web API 开发心得 (1) - WebForm 搭配 Web API
[C#][ASP.NET] Web API 开发心得 (2) - 网站的基本架构
[C#][ASP.NET] Web API 开发心得 (3) - 统一回应 JSON 格式的资料
[C#][ASP.NET] Web API 开发心得 (4) - 使用 FormsAuthentication 进行 API 授权验证
[C#][ASP.NET] Web API 开发心得 (5) - 使用 Filter 统一 API 的回传格式和例外处理
[C#][ASP.NET] Web API 开发心得 (6) - 轻量级的 ORM 工具 Dapper + Slapper.AutoMapper
[C#][ASP.NET] Web API 开发心得 (7) - 使用 Token 进行 API 授权验证