📜  ASP.NET MVC-Web API(1)

📅  最后修改于: 2023-12-03 15:29:30.276000             🧑  作者: Mango

ASP.NET MVC-Web API

什么是ASP.NET MVC-Web API

ASP.NET MVC-Web API是微软针对Web API设计的一种框架技术,它是一种以RESTful方式提供HTTP服务的架构风格,能够使你更容易开发和管理Web API服务。

为什么选择ASP.NET MVC-Web API

相比于其他的Web框架,ASP.NET MVC-Web API具有以下优点:

  • 提供了基于HTTP协议的标准化API开发方式,使得客户端可以以统一的方式来访问API接口。
  • 提供了路由策略,支持RESTful方式的API开发,大大简化了API开发的难度。
  • 可以在同一个工程中通过路由的方式同时支持网站与Web API的开发,减少了开发时间和维护成本。
  • 支持多种格式数据的输入输出,例如XML,JSON等等。
  • 微软官方维护支持,具有可靠性和安全性。
如何使用ASP.NET MVC-Web API
创建空的ASP.NET MVC-Web API项目

让我们从创建一个新的ASP.NET Web API项目开始。

  1. 打开Visual Studio,选择“新建项目”或者 “创建新项目”。

  2. 在“创建新项目”对话框中,选择 ASP.NET Web 应用程序 项目类型。确保 ASP.NET Web API 已选中。

  3. 在“新建 ASP.NET Web 应用程序”对话框中,选择空项目。如果选择了MVC项目,则会同时创建视图文件,这不是我们所需要的。

添加控制器(Controller)

控制器负责处理不同请求类型,然后返回相应的结果输出。

  1. 在项目中右键单击 “控制器(Controller)” 文件夹,然后在上下文菜单中选择 “WebAPI控制器类(Empty)”。

  2. 输入名称并选择“空的 API 控制器(空)”模版,然后单击添加。

编写API代码

在控制器的Action中,执行业务逻辑处理,然后返回结果。

public class UserController : ApiController
{
    [HttpGet]
    public IHttpActionResult Get(int id)
    {
        // 查询用户
        var user = _userService.Get(id);
        if (user == null)
        {
            return NotFound();//返回404
        }
        return Ok(user);//返回成功信息
    }

    [HttpPost]
    public IHttpActionResult Post([FromBody] User user)
    {
        //添加用户
        _userService.Add(user);
        return Ok(user); //返回添加成功信息
    }
}

可以看到,Get方法使用了拦截器注解[HttpGet],表示调用该API时应该使用HTTP GET方法来获取用户信息。 Post方法使用了拦截器注解[HttpPost],表示调用该API时应该使用HTTP POST方法来添加用户信息。 Ok()方法表示返回请求成功信息,NotFound()方法表示没有找到页面。

注册路由

在ASP.NET MVC-Web API框架中,路由(Routing)是负责将请求映射到控制器的关键模块,我们需要在项目中配置路由,以便ASP.NET知道如何处理URL。

  1. 打开App_Start\RouteConfig.cs文件。

  2. 找到 WebApiConfig.Register(config);,这是ASP.NET MVC-Web API配置路由的地方。

  3. 添加自定义路由规则,例如:

public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                name: "UserApi",
                routeTemplate: "api/user/{id}",
                defaults: new { controller = "user", id = RouteParameter.Optional }
            );
        }
总结

ASP.NET MVC-Web API是微软推出的一款用于Web API设计的框架技术,具有简单易用、易于扩展、可重用性强等优势,是开发Web API的好选择。在使用ASP.NET Web API时,需要了解路由策略,创建业务逻辑,配置路由规则等知识。