Web开发

首页 » 常识 » 问答 » ASPNetWebAPI从零开始
TUhjnbcbe - 2025/7/31 17:27:00

ASP.NetWebMVC的知识我们也复习了大概,基础内容已经覆盖了大部分,从本篇开始,我们来认识一下ASP.NetWebAPI。

WebAPI是什么

简单来说,API是某种接口,它具有一组允许程序员访问应用程序,操作系统或其他服务的特定功能或数据的功能。WebAPI顾名思义,是一个可以使用HTTP协议访问的Web上的API。这是一个概念,而不是一种技术。我们可以使用不同的技术(如Java,.NET等)构建WebAPI。

ASP.NETWebAPI

ASP.NETWebAPI是一个可扩展的框架,用于构建基于HTTP的服务。它的工作方式与ASP.NETMVCWeb应用程序的工作方式大致相同,只是它将数据作为响应而不是HTML视图。

创建WebAPI项目

可以通过两种方式创建WebAPI项目。

带有MVC项目的WebAPI独立WebAPI项目注意:通常我们直接创建带有MVC项目的WebAPI。

带有MVC项目的WebAPI

此项目与默认MVC项目相同,其中包含WebAPI的两个特定文件,App_Start文件夹中的WebApiConfig.cs和Controllers文件夹中的ValuesController.cs

WebApiConfig.cs是WebAPI的配置文件。您可以为WebAPI配置路由和其他内容,类似于RouteConfig.cs用于配置MVC路由。它还默认创建WebAPI控制器ValuesController.cs。

WebAPIController

WebAPIController类似于ASP.NETMVCController。它处理传入的HTTP请求并将响应发送回调用者。

WebAPIController是一个类,可以在Controllers文件夹下或项目根文件夹下的任何其他文件夹下创建。控制器类的名称必须以Controller结尾,并且必须继承自System.Web.Http.ApiController。同MVC一样,控制器的所有public方法都称为Action方法。

基于传入的请求URL和HTTP动词(GET/POST/PUT/PATCH/DELETE),WebAPI决定执行哪个WebAPIController和Action方法,例如Get()方法和GetFoos()方法都将处理HTTPGET请求,Post()方法将处理HTTPPOST请求,Put()方法将处理HTTPPUT请求,Delete()方法将处理上述WebAPI的HTTPDELETE请求。

如果你想编写不以HTTP动词开头的方法,那么你可以在方法上应用适当的HttpVerbsAttribute,如HttpGet,HttpPost,HttpPut等,与MVC控制器相同。

Action方法命名约定

Action方法名称可以与HTTP动词相同,如Get,Post,Put,Patch或Delete。也可以使用HTTP谓词附加任何后缀以提高可读性,如GetFoos(),PostBar()等。

配置WebAPI

WebAPI只支持基于代码的配置。它无法在Web.config文件中配置。我们可以配置WebAPI来自定义WebAPI托管和组件的行为,例如Route,Formatter,Filters,DependencyResolver,MessageHandler,ParamterBindingRules等。

HttpConfiguration主类包含以下属性,可以使用这些属性覆盖WebAPI的默认行为。

1
查看完整版本: ASPNetWebAPI从零开始