50 个 Asp.Net Web API 面试问题及答案 (2025)
面向新人的 Asp.Net Web API 面试问题和答案
1)什么是Web API?
WebAPI 是一个帮助您构建/开发 HTTP 服务的框架。
2) 为什么需要 Web API?是否可以使用 WCF 使用 RESTful 服务?
是的,我们仍然可以使用 WCF 开发 RESTful 服务。但是,有两个主要原因促使用户使用 Web API 而不是 RESTful 服务。
- Web API 在 RESTful 服务开发中增加了 TDD(测试数据驱动)方法。
- 如果我们想在 WCF 中开发 RESTful 服务,您肯定需要大量的配置设置、URI 模板、契约和端点来使用 Web API 开发 RESTful 服务。
👉 免费 PDF 下载:Asp.Net Web API 面试问题与答案 >>
3)为什么选择Web API?
- 它用于创建简单的、非基于 SOAP 的 HTTP 服务
- 这也是使用 Web API 进行创建的简单方法。使用 WCF REST 服务
- 它基于 HTTP,并且易于以 REST-ful 方式定义、公开和使用。
- 它是轻量级架构,非常适合智能手机等带宽有限的设备。
4)ASP.NET Web API 已经取代了 WCF 吗?
ASP.NET Web API 取代了 WCF 的说法根本不正确。事实上,它是构建非基于 SOAP 的服务的另一种方式,即纯 XML 或 JSON 字符串。
5)Web API 有哪些优点?
Web API 的优点是:
- 数据
- 筛选
- 内容协商
- 自托管
- 路由
- 模型绑定
6)Web API 主要支持哪些返回类型?
Web API 控制器操作可以返回以下值:
- 空间 – 将返回空内容
- Http响应消息 – 它会将响应转换为 HTTP 消息。
- IHttpActionResult – 内部调用 ExecuteAsync 创建 HttpResponseMessage
- 其他类型 – 可以将序列化的返回值写入响应体中
7)Web API 支持哪种协议?
Web App支持HTTP协议。
8)哪个.NET框架支持Web API?
NET 4.0及以上版本支持Web API。
9)Web API 使用下列哪个开源库进行 JSON 序列化?
Web API 使用 Json.NET 库进行 JSON 序列化。
10) 默认情况下,Web API 对于所有未捕获的异常都会发送带有下列哪种状态代码的 HTTP 响应?
500 - 内部服务器错误
针对有经验者的 Asp.Net Web API 面试问题
11)Web API 中“其他返回类型”的最大缺点是什么?
这种方式最大的缺点就是不能直接返回404错误之类的错误代码。
12)如何构造HtmlResponseMessage?
以下是构造方法,
public class TestController : ApiController { public HttpResponseMessage Get() { HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value"); response.Content = new StringContent("Testing", Encoding.Unicode); response.Headers.CacheControl = new CacheControlHeaderValue() { MaxAge = TimeSpan.FromMinutes(20) }; return response; } }
13)什么是 Web API 路由?
路由是像 MVC 中的模式匹配。
所有路线均在路线表中注册。
例如:
Routes.MapHttpRoute( Name: "ExampleWebAPIRoute", routeTemplate: “api/{controller}/{id} defaults: new { id = RouteParameter.Optional}
14)什么是 SOAP?
SOAP 是用于 Web 服务交互的 XML 消息格式。它允许通过 HTTP 或 JMS 发送消息,但也可以使用其他传输协议。它也是用于在计算机之间交换信息的基于 XML 的消息传递协议。
15)在 Web API 中使用 REST 有什么好处?
REST 用于减少客户端和服务器之间的数据传输,这使其成为在移动应用中使用的理想选择。Web API 还支持 HTTP 协议。因此,它重新引入了传统的 HTTP 动词通信方式。
16)如何将 Web API 与 ASP.NET Web Form 结合使用?
Web API 可与 ASP.NET Web Form 一起使用
它可以通过三个简单的步骤完成:
- 创建一个 Web API 控制器,
- 在 Global.asax 的 Application_Start 方法中添加路由表
- 然后您需要对 Web API 方法进行 jQuery AJAX 调用并获取数据。
17)如何将对 Web API 的访问限制为特定的 HTTP 动词?
属性编程起着重要作用。可以很容易地限制对使用特定 HTTP 方法调用的 ASP.NET Web API 方法的访问。
18)您能将 Web API 与 ASP.NET Web 表单一起使用吗?
是的,可以将 Web API 与 ASP.Net Web 表单一起使用。因为它与 ASP.NET MVC 框架捆绑在一起。但是,它可以与 ASP.NET Web 表单.
19) 如何为 ASP.NET Web API 操作分配别名?
我们可以为 Web API 操作指定别名,就像 ASP.NET MVC 通过使用“ActionName”属性,如下所示:
[HttpPost] [ActionName("SaveStudentInfo")] public void UpdateStudent(Student aStudent) { StudentRepository.AddStudent(aStudent); }
20)TestApi 的含义是什么?
TestApi 是一个实用的 API 库。使用此库,测试人员开发人员可以创建 测试工具 并使用数据结构和算法对 .NET 应用程序进行自动化测试。
针对 5 年经验的 Web API 面试问题
21)解释异常过滤器?
当控制器方法中未处理并抛出异常时,它将被执行od. 异常的原因可以是任何原因。异常过滤器将实现“IExceptionFilter”接口。
22)我们如何从动作中注册异常过滤器?
我们可以使用以下代码从操作中注册异常过滤器:
[NotImplExceptionFilter] public TestCustomer GetMyTestCustomer(int custid) { //write the code }
23) 如何从 ASP.NET Web API 方法返回视图?
不,我们无法从 ASP.NET Web API 方法返回视图。Web API 创建呈现原始数据的 HTTP 服务。但是,在 ASP.NET MVC 应用程序中也是可能的。
24)如何全局注册异常过滤器?
可以使用以下代码全局注册异常过滤器-
GlobalConfiguration.Configuration.Filters.Add(新
MyTestCustomerStore.NotImplExceptionFilterAttribute());
25)解释什么是REST和RESTFUL?
REST 代表表述性状态转移;它是编写 Web 应用程序的一个全新方面。
RESTFUL:应用 REST 架构概念编写的术语称为 RESTful 服务。它专注于系统资源以及如何通过 HTTP 协议传输资源状态。
26)请给出一个 Web API 路由的例子?
Config.Routes.MapHttpRoute( name: "MyRoute,"//route name routeTemplate: "api/{controller}/{action}/{id}",//as you can see "API" is at the beginning. defaults: new { id = RouteParameter.Optional } );
27) 如何处理 Web API 中的错误?
Web API 中有多个类可用于处理错误。它们是 HttpError、Exception Filters、HttpResponseException 和 Registering Exception Filters。
28) ASP.NET Web API 2.0 有哪些新功能?
ASP.NET Web API框架v2.0的最新特性如下:
- 属性路由
- 跨域资源共享
- 外部认证
- 打开 Web 界面 NET
- HttpActionResult
- Web API OData
29)如何在 Web API 中将访问方法限制为特定的 HTTP 动词?
借助属性(如 HTTP 动词),可以在 Web API 中实现访问限制。
可以将 HTTP 动词定义为属性来限制访问。
示例:
[HttpPost] public void Method1(Class obj) { //logic
30) 如何在 Web API 中传递多种复杂类型?
在 Web API 中传递复杂类型的两种方法 –
使用 ArrayList 和 Newtonsoft 数组
31)编写一个在 Web API 中传递 ArrayList 的代码?
ArrayList paramList = new ArrayList(); Category c = new Category { CategoryId = 1, CategoryName =“MobilePhones”}; Product p = new Product { Productcode = 1, Name = “MotoG”, Price = 15500, CategoryID = 1 }; paramList.Add(c); paramList.Add(p);
32)请说出用于开发或测试 Web API 的工具或 API?
REST API 的 Web 服务测试工具包括:
- 泽西岛 API
- 外汇
- 轴
- 座便器
33)什么是 REST?
REST 是一种架构风格。它定义了创建可扩展服务的准则。REST 与 HTTP 协议一起使用,使用其动词 GET、PUT、POST 和 DELETE。
34)如何对 Web API 进行单元测试?
我们可以使用 Web API 工具执行单元测试,例如 Fiddler.
如果您使用
Fiddler –撰写选项卡 -> 输入请求标头 -> 输入请求正文并执行
35)我们如何限制对 Web API 中具有特定 HTTP 动词的方法的访问?
属性编程被广泛用于此功能。Web API 还允许借助特定的 HTTP 动词来限制调用方法的访问。也可以将 HTTP 动词定义为方法上的属性。
10 年以上经验的 Web API 面试问题
36) DelegatingHandler 有什么用途?
DelegatingHandler 在 Web API 中用于表示路由之前的消息处理程序。
37)我们如何从动作中注册异常过滤器?
我们可以使用以下代码从操作中注册异常过滤器
[NotImplExceptionFilter] public TestCust GetMyTestCust (int custno) { //write the code }
38) 告诉我代码片段来展示如何从 HttpError 返回 404 错误?
从 HttpError 返回 404 错误的代码
string message = string.Format(“TestCustomer id = {0} not found”, customerid);
return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
39)解释从控制器注册异常过滤器的代码片段?
[NotImplExceptionFilter] public class TestCustController : Controller { //Your code goes here }
40)Web API 支持哪种协议?
Web App支持HTTP协议
41)下列哪个.NET框架支持Web API?
NET 4.0 版本支持 Web API
42)Web API 使用哪个库进行 JSON 序列化?
Web API 使用 Json.NET 库进行 JSON 序列化。
43) 默认情况下,Web API 对于所有未捕获的异常都会发送带有下列哪种状态代码的 HTTP 响应?
500 - 内部服务器错误
44)解释在 Web API 中使用 HttpError 处理错误的方法?
在 WEB API 中,HttpError 用于在响应体中抛出错误信息。“CreateErrorResponse”方法也可以与之一起使用,它是“HttpRequestMessageExtension”中定义的扩展方法。
45) 如何全局注册异常过滤器?
我们可以使用以下代码全局注册异常过滤器:
GlobalConfiguration.Configuration.Filters.Add (new MyTestCustomerStore.NotImplExceptionFilterAttribute());
46)如何处理 Web API 中的错误?
Web API 中有多个类可用于处理错误。它们是 HttpError、HttpResponseException、Exception Filters 和 Registering Exception Filters。
47)WebAPI 相对于 WCF 有什么好处?
WCF 服务使用 SOAP 协议,而 HTTP 从来不使用 SOAP 协议。这就是为什么 WebAPI 服务是轻量级的,因为不使用 SOAP。它还减少了传输到恢复服务的数据。此外,它从来不需要太多的配置。因此,客户端可以使用 HTTP 动词与服务进行交互。
48)MVC 与 WebAPI 之间的状态差异
MVC 框架用于开发具有用户界面的应用程序。为此,可以使用视图来构建用户界面。
WebAPI 用于开发 HTTP 服务。其他应用也可以调用 WebAPI 方法来获取该数据。
49)谁可以使用 WebAPI?
任何支持 HTTP 动词(例如 GET、PUT、DELETE、POST)的客户端都可以使用 WebAPI。由于 WebAPI 服务不需要任何配置,因此任何客户端都可以轻松使用它们。事实上,即使是移动设备等便携式设备也可以轻松使用 WebAPI,这无疑是这项技术的最大优势。
50)我们如何确保 Web API 仅返回 JSON 数据?
为了让 Web API 将返回对象序列化为 JSON 格式并仅返回 JSON 数据。为此,您应该在任何 MVC Web API 项目的 WebApiConfig.cs 类中添加以下代码:
//JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json")); 1 2 3 //JsonFormatter //MediaTypeHeaderValue Config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"))
这些面试问题也会对你的口试有帮助