所有文章 > 最新动态 > Web API开发者面试时最多问到的85+问题和答案
Web API开发者面试时最多问到的85+问题和答案

Web API开发者面试时最多问到的85+问题和答案

Web API 是一个重要的应用程序编程接口,它支持在各种浏览器和设备(如平板电脑、手机等)上提供 Web 服务。它因其轻量级和更简单的服务而具有重要意义,并且可以用作独立的 Web 服务应用程序。

如果您是 Web API 的学生或正在开发此框架能力的专业人士,您已经知道拥有可靠的 Web API 面试问题资源的重要性。由于 Web API 的重点是实用性,因此任何问题集合都必须解决 Web API 在实际场景中的应用。这些面试问题还可以帮助您为该领域的梦想工作做好准备。

通过深入研究这些 Web API 面试问题,让我们更多地了解 Web API,这将有助于您参加工作面试或增强您对该主题的整体知识和理解。

Web API 面试问题

1.什么是 ASP.Net Web API

答:ASP.Net Web API 是一个帮助塑造和使用基于 HTTP 的服务的框架。处理移动应用程序和 Web 浏览器的客户端可以使用 Web API。

2.Web API WCF REST API 有什么区别?

答:Web API 适用于基于 HTTP 的服务,而 WCF REST API 则适用于消息队列、单向消息传递和双工通信。WEB API 支持任何媒体格式,甚至 XML 和 JSON,而 WCF 支持 SOAP 和 XML 格式。ASP.Net Web API 非常适合构建 HTTP 服务,而 WCF 非常适合开发面向服务的应用程序。要运行 Web API,不需要任何配置,而对于 WCF,则需要进行大量配置才能运行它。

3.使用 ASP.Net Web API 有什么优点?

答:使用 ASP.Net Web API 的优点如下:

  • 它完成了对路由的支持
  • 以 HTTP 形式工作,使用标准 HTTP 动词(例如 GET、DELETE、POST、PUT 等)执行所有 CRUD 操作
  • 它可以托管在 IIS 中,也可以在 IIS 之外自行托管
  • 支持 OData
  • 它支持验证和模型绑定
  • 使用 MediaTypeFormatter 生成 XML 或 JSON 格式的响应

4. ASP.Net Web API 中有哪几种返回类型?

答:ASP.Net Web API 中的各种返回类型有:

  • 接口
  • HttpResponse消息
  • 空白
  • 其他类型 – 字符串、整数或其他实体类型。

5.什么是 ASP.Net Web API 路由?

答:它是决定应该调用的动作和控制器的流程。

在 Web API 中加入路由的方法包括:

  • 基于属性的路由
  • 基于约定的路由

6. Web API 中的媒体类型格式化程序是什么?

答:Web API中的媒体类型格式化程序包括:

  • MediaTypeFormatter – 它是帮助处理强类型对象的序列化和反序列化的基类。
  • BefferedMediaTypeFormatter – 它表示一个辅助类,允许在异步格式化程序基础结构上使用异步格式化程序。

7. Web API 中的 CORS 问题是什么?

A:CORS 是跨源资源共享的缩写,CORS 解决了 JavaScript 的同源限制,同源是指 JavaScript 只对同源的网页进行 AAJAX 调用。

您必须使用包管理器控制台安装 CORS nuget 包才能在 Web API 中启用 CORS。

打开 WebAPIConfig.cs 文件

添加 config.EnableCors();

在Controller类中添加EnableCors属性,并定义来源。

[EnableCors(起源:“”,标头:“*”,方法:“*”)]。

8.如何保护 ASP.Net Web API

答:为了保护 ASP.Net Web API,我们需要控制 Web API,并决定谁可以访问 API,谁不能访问。任何知道 URL 的人都可以访问 Web API。

9. HTTP Get HTTP Post 有什么区别?

答:GET和POST是HTTP的两个重要动词。

  • GET 的参数包含在 URL 中;POST 的参数包含在 body 中
  • GET 请求不会对服务器进行任何更改;而 POST 则会对服务器进行更改
  • GET 请求是幂等的;而 POST 请求是非幂等的
  • 在 GET 请求中,数据以纯文本形式发送;二进制和文本数据以

10.如何使用Web API

答:Web API 可轻松与 ASP.Net Forms 一起使用。您可以在 Global.asax 文件中的 Application Start 方法中添加 Web API 控制器和路由。

11. ASP.Net Web API 中的异常过滤器

答:Web API 中的异常过滤器有助于实现 IExceptionFilters 接口。当某个操作在任何时候引发异常时,它们就会执行。

12. 我们从 ASP.Net Web API 返回视图吗?

答:不可以,因为 Web API 创建基于 HTTP 的服务。它主要在 MVC 应用程序中可用。

13. ASP.Net Web API 2.0 有哪些新功能?

答: ASP.NET Web API 框架 v2.0引入的功能有:

  • 属性路由
  • 外部身份验证
  • CORS(跨域资源共享)
  • OWIN(.NET 开放 Web 接口)自托管
  • 接口
  • Web API 数据

14. 我们如何限制对 Web API HTTP 动词方法的访问?

答:必须添加一个属性,如下所示:

[HttpGet]

public HttpResponseMessage Test()

{

HttpResponseMessage response = new HttpResponseMessage();

///

return response;

}

[HttpPost]

public void Save([FromBody]string value)

{

}

15. 我们如何确保 Web API 仅以 JSON 格式返回数据?

答:为了确保 Web API 仅以 JSON 格式返回数据,请打开“WebApiConfig.cs”文件并添加以下行:

config.Formatters.JsonFormatter.SupportedMediaTypes.添加(新 MediaTypeHeaderValue(“application/json”))

16. 如何为 Web API 中的操作方法提供别名?

答:通过添加属性ActionName,可以提供别名:

[ActionName(“InertUserData”)]

// POST api/

public void Post([FromBody]string value)

{

}

17. 如何处理 Web API 中的错误?

答:可以借助以下类来处理 Web API 中的错误或异常 –

  • 使用 HttpResponseException – 此异常类有助于返回异常构造函数中指定的 HTTP 状态代码。
  • 使用 HttpError – 此异常类有助于将有意义的错误代码作为 HttpResponseMessage 返回给客户端。
  • 使用异常过滤器——异常过滤器有助于捕获 Web API 中生成的未处理的异常或错误,并且可以在控制器操作方法抛出未处理的错误时使用它们。 

18.如何托管Web API

答:Web API 应用程序可以通过两种方式托管:

  • 自托管 
  • IIS 托管 

19.如何使用HTTPClient使用Web API

答:HTTPClient 类中引入了 HTTPClient,用于与 ASP.Net Web API 进行通信。此 HTTPClient 类可用于控制台应用程序或 MVC 应用程序。

20. 使用 ASP.Net Web API 解释 OData

答:OData 是开放数据协议 (Open Data Protocol) 的缩写。它是一种基于 Rest 的数据访问协议。OData 提供了一种利用 CRUD 操作来操作数据的方法。ASP.Net Web API 支持 OData V3 和 V4。

要在 ASP.Net Web API 中使用 OData,您需要一个 OData 包。您必须在包管理器控制台中运行以下命令。

安装包 Microsoft.AspNet.Odata

21.我们可以在 C# 控制台应用程序中使用 Web API 2 吗?

答:是的,Web API 2 可以在控制台应用程序、MVC、Angular JS 或任何其他应用程序中使用。

22.使用实体框架执行 Web API 2 CRUD 操作。

答:可以使用带有 Web API 的实体框架执行 CRUD 操作。

23. 如何在 Web API 中启用 HTTPs

答:ASP.Net Web API 通过 HTTP 协议运行。您可以创建一个类并获取一个具有 AuthorizationFilterAttribute 的类。现在检查请求的 URL 是否具有 HTTPS。

24. 如何在 ASP.Net Web API 中实现基本身份验证?

答:ASP.Net Web API 中的基本身份验证可以通过以下方式实现:客户端发送带有 Authorization 标头和单词 Basic 的请求。在基本身份验证中,Authorization 标头包含单词 Basic,后跟一个 base 64 编码的字符串。

基本身份验证的语法 –

1Authorization: Basic username: password

25. Web API 中的基于令牌的身份验证是什么?

答:这是一种保护 .Net Web API 的方法,因为它通过签名的令牌对用户进行身份验证,也称为基于令牌的方法。

26. .Net Web API 中的内容协商是什么?

答:在 ASP.Net Web API 中,内容协商是在服务器端完成的。这有助于确定媒体类型格式化程序,尤其是在返回对传入请求的响应时。

27. 什么是 ASP.Net 身份?

A:ASP.Net Identity 是微软提供的会员管理框架,可以非常容易地与 Web API 结合,帮助您构建安全的 HTTP 服务。

28. .Net Web API 中的 Bearer Authentication 是什么?

答:Bearer 认证又称为基于 Token 的认证。

29.什么是 REST

答:REST代表表述性状态转移。这是一种有助于在分散环境中交换数据的架构模式。

REST 架构模式将所有服务视为资源,客户端可以使用 HTTP 协议方法(包括 PUT、GET、POST 和 DELETE)访问这些资源。

30.什么不是 REST

答:下面提到的不是 REST:

  • 标准
  • 协议
  • 3. SOAP 的替代品

31. REST SOAP 有什么区别?

答: REST 和 SOAP之间有以下区别:

SOAPREST
SOAP 代表简单对象访问协议REST 代表表述性状态转移。
SOAP 是一种协议,称为 XMLREST 不是一种协议,但您可以将其称为用于基于资源的架构的架构模式示例。
SOAP 指定无状态和全状态实现REST 是完全无状态的。
SOAP 应用像 XML 这样的消息格式;REST 不应用 XML 或 JSON 等消息格式。
为了公开服务,SOAP 使用接口和命名操作;REST 使用 URI 和 POST、GET、PUT 和 DELETE 等方法来公开资源(服务)。

32. ASP.NET MVC ASP.NET Web API 之间有什么区别?

A:MVC 用于创建可以返回视图和数据的 Web 应用程序,而 ASP.NET Web API 用于创建简单的 RESTful HTTP 服务,只返回数据不返回视图。MVC 中请求映射到操作名称,而 Web API 中请求映射到基于 HTTP 动词的操作。

33. ASP.NET Web API 真的取代了 WCF 吗?

答:事实并非如此!它只是构建非基于 SOAP 的服务(如纯 XML 或 JSON 字符串)的另一种方式。它还具有其他优势,例如可以使用 HTTP 的全部功能并覆盖更多客户端(如移动设备等)。

34. 解释 Web API 2 中的媒体格式化程序

答:这些是负责响应数据的类。Web API 理解请求数据格式,并以客户端期望的格式发送数据。

35. Web API 支持哪种协议?

A:Web API 仅支持 HTTP 协议,因此只要支持 HTTP 协议的客户端就可以使用它。

36. MVC Web API 有哪些相似之处?

答:MVC和 Web API 都基于关注点分离原则和控制器、路由和模型等概念。

37. MVCWeb API有什么区别?

答:MVC 用于开发带有用户界面的应用程序。MVC 中的视图用于开发用户界面。Web API 用于开发 HTTP 服务。为了获取数据,其他应用程序会调用 Web API 方法。

38.谁可以使用 Web API

答:Web API 由支持 HTTP 动词(例如 DELETE、GET、PUT 和 POST)的客户端使用。由于 Web API 服务不需要任何配置,因此客户端可以非常轻松地使用它们。便携设备可以非常轻松地使用 Web API。

39. Web API 中请求如何映射到 Action 方法?

答:由于 Web API 使用 HTTP 动词,因此可以使用 Web API 的客户端需要调用 Web API 方法的方法。客户端可以使用 HTTP 动词来调用 Web API 的操作方法。

请看下面给出的示例。为了调用 GetEmployee 之类的方法,客户端可以使用如下 jQuery 方法:

$.get(“/api/Employees/1”, null, function(response) 
{
$(“#employees”).html(response);
});

因此,上面没有提到方法名称。作为替代方案,可以使用 GET HTTP 动词来调用 GetEmployee 方法。

GetEmployee 方法可以定义如下:

 [HttpGet]

public void GetEmployee(int id)

{

StudentRepository.Get(id);

}

从上图可以看出 GetEmployee 方法用 [HttpGet] 属性修饰,因此必须使用不同的动词来映射不同的 HTTP 请求:

  • HttpGet
  • HttpPut
  • HttpPost
  • HttpDelete

40. 不使用 HTTP 属性是否可以将 HTTP 请求映射到操作方法?

A:对于动作方法,有两种方式映射 HTTP 请求。第一种方式是使用动作方法上的 trait。第二种方式是以 HTTP 动词开头命名方法。例如,定义一个 GET 方法,可以定义为:

public void GetEmployee(int id)

{

StudentRepository.Get(id);

}

由于它可以以GET开头,因此上述方法可以自动与GET请求映射。

41. 如何给网站添加证书?

答:要将证书添加到网站,您可以按照以下步骤操作:

  • 你必须去运行类型命令 mmc
  • 现在单击“确定”
  • 证书添加窗口现已打开

42. 编写一个 LINQ 代码来验证用户身份?

答:公共静态布尔登录(字符串UN,字符串密码)

{StudentDBEntities students = new StudentDBEntities()students.sudent.Any(e => e.UserName.Equals(UN) && e=>e.Password.Equlas(UN)) // students has more than one table}

43. 如何在 jQuery 中导航到另一个页面?

答:使用 widow.location.href = “~/homw.html”;

44. 如何为 ASP.NET 网站启用 SSL

答:为了对 ASP.NET 网站启用 SSL,您可以单击项目属性,在那里您可以看到此选项。

45. 如何在 Web API 中使用 Authorize 属性提及角色和用户?

// Restrict by Name
[Authorize(Users=”Shiva,Jai”)]
public class StudentController : ApiController{}
// Restrict by Role[Authorize(Roles=”Administrators”)]
public class StudnetController : ApiController{}

46. 我们可以在路线级别施加限制吗?

A:是的,可以申请。

[Route(“students/{id:int}”]

public User GetStudentById(int id) { … }

[Route(“students/{name}”]

public User GetStudentByName(string name) { … }

只要 URI 的“id”部分是整数,就可以选择第一个路由。否则,可以选择第二个路由。

47.如何启用属性路由?

答:要启用属性路由,可以在 WebApi 配置文件中调用 MapHttpAttributeRoutes(); 方法。

public static void Register(HttpConfiguration config)

{

// Web API routes

config.MapHttpAttributeRoutes();

// Other Web API configuration not shown.

}

48. Web API中参数如何获取值?

答:参数在Web API中获取值的方式如下:

  • 请求正文Request body
  • URI
  • 自定义绑定

49.为什么在Web API路由中使用“api/”段?

答:“api/” 段用于避免与 ASP.NET MVC 路由冲突

50. Web API 中可以有 MVC 类型的路由吗?

答:可以在 Web API 中实现 MVC 类型的路由。

51. Web API中定义的路由在哪里?

答:它放在App_Start目录中。

App_Start –> WebApiConfig.cs

routes.MapHttpRoute(

name: “myroute”,

routeTemplate: “api/{controller}/{id}”,

defaults: new { id = RouteParameter.Optional }

);

52.如何构造HtmlResponseMessage?

public class TestController : ApiController

A: To construct HtmlResponseMessage, you can consider the following way:

{

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;

}

}

53. Web API 默认支持的媒体类型有哪些?

A:Web API 默认支持的媒体类型有 XML、form-urlencoded 数据、JSON、BSON,其他支持的媒体类型可以通过编写媒体格式化程序来实现。

54 Web API 中的其他返回类型有什么缺点?

A:Web API中“其他返回类型”最大的缺点就是不会直接返回类似404错误这样的错误代码。

55. Web API IHttpActionResult 返回类型的命名空间是什么?

答:System.Web.Http.Results 命名空间

56.为什么Web API很重要?

我们还有其他几种与 Web API 类似的技术,但由于以下几个原因,它是最重要的,并且比其他技术更受欢迎 –

  • Web API 具有最轻量的架构,并为网站和客户端应用程序提供了访问数据的简便的接口。
  • 它使用低带宽。这使得它非常适合小带宽设备,例如智能手机。
  • 它可以创建非基于 SOAP 的 HTTP 服务。
  • 它可以被一系列客户端使用,包括网络浏览器、桌面和移动应用程序。
  • Web API 基于 HTTP,这使得使用 REST-ful 服务定义、使用或公开变得方便。
  • 它最适合用于执行创建、读取、删除或更新等操作的 HTTP 动词。
  • 从商业角度来看,Web API 更有用,并且在 UI/UX 中找到其应用来增加网络流量和对公司服务或产品的兴趣。
  • 它可以支持大量文本和媒体格式,如 JSON、XML 等。
  • 它还可以支持开放数据(OData)协议。
  • 它最适合 MVC 模式,这使其成为该模式经验丰富的开发人员的理想选择。
  • 可以使用ASP.NET、JAVA等技术轻松构建。
  • 创建面向资源的服务被认为是最好的。

57.哪个 .NET 框架支持 Web API

Web API支持的.NET Framework版本包括4.0及以上版本。

58. Web API 支持哪些开源库进行 JSON 序列化?

JSON.NET 库是一个用于通过 Web API 进行 JSON 序列化的高性能 JSON 框架。

59. Web API 中使用 REST 有哪些优点?

REST 在 Web API 中提供了许多优势,包括 –

  • 轻量级架构,易于使用
  • 提供灵活性
  • 允许客户端和服务器之间传输更少的数据传输
  • 处理各种类型的数据格式
  • 其轻量级架构使其非常适合用于移动应用程序
  • 使用简单的 HTTP 调用进行机器间通信

60.什么时候需要选择 ASP.NET Web API

在当今高度互联的数字世界中,我们正在将基于 Web 的服务转向移动应用程序。这意味着我们需要一个轻量级、安全、可靠且与这些智能设备兼容的 API。ASP.Net Web API 是一个框架,它满足构建许多客户端(包括浏览器和现代设备,如手机、平板电脑等)使用的 HTTP 服务的所有要求。

61.你对Web API中的TestApi有什么了解?

Web API 中的 TestAPi 是一个实用程序库,允许开发人员创建测试工具以及自动化 .NET 应用程序的测试。

62. 如何在 Web API 中使用 HttpError 处理错误?

HttpError 方法用于 Web API 中抛出响应主体的错误信息。也可以将“CreateErrorResponse”方法与该方法一起使用。 

63.我们可以在 C# 控制台应用程序中使用 Web API 2 吗?

是的。可以在控制台应用程序、MVC、Angular JS 或任何其他应用程序中使用 Web API 2。

64. 如何在 ASP.Net Web API 中实现基本身份验证?

ASP.Net Web API 中的基本身份验证是客户端将使用带有授权标头的 Basic 一词发送请求,后跟 base 64 编码的字符串。

基本身份验证的语法 –

授权:基本用户名:密码

65.给出Web API中参数的示例。

Web API 中使用参数来确定您对特定资源采取的操作类型。每个参数都包含名称、值类型和描述,这些参数能够影响端点响应。

您可以使用查询 API 来获取有关数据源内各种实体的信息。

Get 方法使用多个原始参数。例如,Get 方法需要 id 参数来获取产品详细信息 –

public IHttpActionResult GetProductMaster(int id)
{
ProductMaster productMaster = db.ProductMasters.Find(id);
if (productMaster == null)
{
return NotFound();
}
return Ok(productMaster);
}
In the same way, the Post method will require complex type parameters to post data to the server.

public IHttpActionResult PostProductMaster(ProductMaster productMaster)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.ProductMasters.Add(productMaster);
db.SaveChanges();
return CreatedAtRoute(“DefaultApi”, new { id = productMaster.id }, productMaster);
}
Similarly PUT method will require primitive data type example for id and complex parameter i.e. ProductMaster class.
if (id != productMaster.id)
{
return BadRequest();
}

db.Entry(productMaster).State = EntityState.Modified;

try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!ProductMasterExists(id))
{
return NotFound();
}
else
{
throw;
}
}

66. 举一个例子来指定 Web API 路由。

以下是 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 }
);

67.如何全局注册一个异常过滤器?

您可以使用以下代码全局注册异常过滤器 –

全局配置.配置.过滤器.添加(新的MyTestCustomerStore.NotImplExceptionFilterAttribute());

68. Web API 中使用了哪些不同的 HTTP 方法?

虽然 HTTP 动词或方法有很多种,但最重要和最常用的是 GET、PUT、POST 和 DELETE。

GET – 用于检索指定 URI 处的资源信息。

PUT – PUT 方法用于更新指定 URI 处的资源的值。

POST –POST 方法用于创建新请求并将数据发送到相应的服务器。

DELETE –此方法用于删除指定 URI 处的当前资源。

这些 HTTP 动词的功能可以用首字母缩略词 CRUD 来概括,其中每个字母对应不同的操作 –

C 代表创建或 POST(创建数据)

R 代表读取或 GET(数据检索)

U 代表 Update 或 PUT(更新数据)

D 代表 Delete 或 DELETE(删除数据)

根据要求,其他不太常用的 HTTP 动词或方法包括 –

HEAD –此方法的工作方式与 GET 方法相同,主要用于传输标题部分。

选项——此方法有助于识别和描述特定资源的通信选项。

连接——用于在给定的 URI 的帮助下在服务器和所需目的地之间建立双向通信。 

TRACE – 此方法用于诊断目的,沿目标路径调用环回消息并使用该数据进行测试。 

69. Web API中的HttpConfiguration是什么?

HttpConfiguration 是指用于覆盖默认 Web API 行为的全局服务集。它具有以下属性 –

  • 参数绑定规则
  • 格式化程序
  • 消息处理器
  • 依赖解析器 
  • 服务 

70. 解释代码片段以展示如何从 HttpError 返回 404 错误。

以下是从 HttpError 返回 404 错误的代码 – 

string message = string.Format(“TestCustomer id = {0} not found”, customerid);

return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);

71. 从动作中注册异常过滤器的代码是什么?

可以使用以下代码注册异常过滤器 –

[NotImplExceptionFilter]

public TestCust GetMyTestCust (int custno)

{

//write the code

}

72. 用于开发或测试 Web API 的测试工具或 API 有哪些?

  • 碳氟化合物
  • 泽西岛 API 
  • 雷斯特莱特 

73. 如何在 Web API 中传递多种复杂类型?

在 Web API 中传递多种复杂类型的两种方法包括 – Newtonsoft 数组和使用 ArrayList。 

74. .NET 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);

75. 什么是 HTTP 状态代码?

HTTP 状态代码是服务器响应客户端的请求而发出的三位整数,每个数字都有其含义。

76. 不同的 HTTP 状态代码如何分类?

所有 HTTP 状态代码分为五类。这些包括 –

  • 1xx(信息性)——表示服务器已收到某个请求,并且该过程正在继续。
  • 2xx(成功)——表示请求成功并被接受。
  • 3xx(重定向)——表示请求已被重定向,其完成需要进一步的操作或步骤。
  • 4xx(客户端错误)——表示网页请求无法到达,因为网页不可用或语法错误。
  • 5xx(服务器错误)——表示服务器无法完成某个请求,即使该请求看起来有效。

77.常见的HTTP响应状态代码是什么?

有许多 HTTP 代码是可见的,还有一些一开始不可见,但管理员可以使用浏览器扩展或某些工具观察到。识别和纠正这些错误对于增强用户体验和优化网络搜索引擎排名至关重要。

以下是最常见的 HTTP 状态代码一览 –

  • 状态代码 200 — 请求正常。
  • 状态代码 201 – 已创建
  • 状态代码 202 – 已接受
  • 状态代码 204 – 无内容
  • 状态代码 301 – 永久移动
  • 状态代码 400 – 错误请求
  • 状态代码 401 – 未授权
  • 状态代码 403 – 禁止访问
  • 状态代码 404 – 未找到
  • 状态代码 500 – 内部服务器错误
  • 状态代码 502 – 网关错误
  • 状态代码 503 – 服务不可用

78. 网站所有者如何避免 HTTP 状态代码?

为了确保网站顺利运行并提供最佳的用户体验,管理员或网站所有者必须持续努力将自动生成的错误代码保持在最低限度并识别 404 错误。 

可以通过 301 代码将用户重定向到其他位置(例如起始页)来避免 404 HTTP 状态代码。手动创建错误页面也可以降低网站访问者的跳出率。

79. 验证页面上所有控件的名称方法?

系统执行Page.Validate()方法来验证页面上的所有控件。

80. DelegatingHandler 有什么用?

DelegatingHandler 是用于在 ASI.Net Web API 中开发自定义服务器端 HTTP 消息处理程序并将消息处理程序链接在一起的过程。

81. 什么是互联网媒体类型?

以前称为 MIME 类型,它是指用于识别互联网上的内容(例如一段数据所包含的信息类型)的标准设计。

例如,如果我们通过电子邮件收到一个附件,这个标识符有助于了解标头中包含的附件​​信息的媒体类型,以便浏览器可以启动适当的插件。

了解媒体类型的信息是一种很好的做法,因为每种互联网媒体类型都必须符合以下格式 –

[类型]/[树。](可选)[子类型][+后缀](可选)[;参数]

每种媒体类型必须具有“类型”和“子类型”,以指示其包含的信息类型。例如,   

图像– 类型/png – 子类型

应用程序– type/rss- subtype+xml

82. Web API 可以返回 HTML 视图吗?

Web API 无法返回 HTML 视图。如果要返回视图,最好使用 MVC。 

83. Web API 返回类型为空的状态码是什么?

状态代码 204 将在响应有效负载主体中返回空内容。  

84.您能详细说明一下不同的 Web API 过滤器吗?

过滤器用于在 Web API 框架内请求处理的特定阶段之前或之后添加额外的逻辑。 

过滤器有多种类型。一些内置过滤器可处理授权、响应缓存等任务,而自定义过滤器可处理错误处理、授权等问题。

在 ASP.Net 管道中运行的过滤器,也称为过滤器管道,并且根据此过滤器管道中特定阶段的执行,各种类型的过滤器包括 –

  • 身份验证过滤器——它有助于验证用户详细信息和 HTTP 请求。
  • 授权过滤器——它在控制器操作之前运行,以确定用户是否被授权。 
  • 资源过滤器 – 它在授权后运行,并在其余过滤器管道之前运行代码。例如 – OnResourceExecuted 在其余管道完成后运行代码。  
  • 动作过滤器——用于在执行动作之前添加额外的逻辑,并能够改变特定动作返回的结果。 
  • 异常过滤器——当控制器操作抛出在写入响应主体之前发生的未处理的错误时使用。
  • 覆盖过滤器——用于改变动作方法或其他过滤器。 
  • 结果过滤器——它在执行操作结果之前或之后运行代码。 

85.ApiControllerController有什么区别?

ApiController专门返回按序列排列并发送给客户端的数据。

public class TweetsController : ApiController
{
// GET: /Api/Tweets/
public List<Tweet> Get()
{
return Twitter.GetTweets();
}
}

另一方面,控制器提供普通视图并处理 HTTP 请求。

public class TweetsController : Controller 
{
// GET: /Tweets/ [HttpGet] public ActionResult Index()
{
return Json(Twitter.GetTweets(), JsonRequestBehavior.AllowGet);
}
}

86. XML 和 JSON 有什么区别?

XML 是可扩展标记语言 (eXtensible Markup Language) 的缩写,用于存储和发送数据。JSON 是 JavaScript 对象表示法 (JavaScript Object Notation) 的缩写,用于在数据从服务器发送到网页时存储和传输数据。

除了以特定格式存储数据之外,XLM 没有太多功能,而 JSON 是一种轻量级且易于理解的数据存储格式,在 JavaScript 中广泛使用。

87. 缓存是什么意思?

缓存是指将数据临时存储在缓存中以供将来使用的技术。它会在缓存中保留所有常用数据和文件的副本,从而使网站能够更快地呈现。它还有助于提高可扩展性,以便在需要时直接从内存中检索数据。

ASP.Net Web API 中最简单的缓存基于 IMemoryCache。

缓存的一些主要优点包括 –

  • 最大限度地减少数据库访问量
  • 帮助网页更快地呈现
  • 降低网络成本
  • 流程执行速度更快
  • 客户端和服务器均非常高效
  • 减少服务器的加载时间
  • 最佳页面管理策略,提高应用程序性能

88. 缓存有哪些类型?

ASP.NET Web API 中有不同类型的缓存。这些是 –

  • 页面输出缓存 – 这种类型的缓存将最近使用的数据副本存储在内存缓存中,以提高网页性能。缓存的输出直接从缓存中获取并发送到应用程序。

以下是实现页面输出缓存的代码 –

<%@ OutputCache Duration="30" VaryByParam="*" %>
  • 页面片段缓存 – 这种形式的缓存仅缓存数据或网页片段,而不是整个页面。当网页包含动态和公共部分,并且用户希望缓存其中的某些部分时,这种方法非常有用。
  • 数据缓存 – 在这种形式的缓存中,数据存储在临时存储中,以便以后可以检索。以下是使用 Cache API 存储数据的语法 –

缓存[“”] = “”;

本文翻译源自:https://www.mygreatlearning.com/blog/web-api-interview-questions/

#你可能也喜欢这些API文章!
搜索、试用、集成国内外API!
幂简集成API平台已有 4675种API!
API大全
同话题下的热门内容
na
如何找到合适的API
na
2024年顶级JavaScript REST API框架
na
经济动荡期,开发者如何用API平台提升个人竞争力!
na
如何选择Python REST API 框架?
内容目录
  1. 1.什么是 ASP.Net Web API?
  2. 2.Web API 和 WCF REST API 有什么区别?
  3. 3.使用 ASP.Net Web API 有什么优点?
  4. 4. ASP.Net Web API 中有哪几种返回类型?
  5. 5.什么是 ASP.Net Web API 路由?
  6. 6. Web API 中的媒体类型格式化程序是什么?
  7. 7. Web API 中的 CORS 问题是什么?
  8. 8.如何保护 ASP.Net Web API?
  9. 9. HTTP Get 和 HTTP Post 有什么区别?
  10. 10.如何使用Web API?
  11. 11. ASP.Net Web API 中的异常过滤器
  12. 12. 我们从 ASP.Net Web API 返回视图吗?
  13. 13. ASP.Net Web API 2.0 有哪些新功能?
  14. 14. 我们如何限制对 Web API 中 HTTP 动词方法的访问?
  15. 15. 我们如何确保 Web API 仅以 JSON 格式返回数据?
  16. 16. 如何为 Web API 中的操作方法提供别名?
  17. 17. 如何处理 Web API 中的错误?
  18. 18.如何托管Web API?
  19. 19.如何使用HTTPClient使用Web API?
  20. 20. 使用 ASP.Net Web API 解释 OData。
  21. 21.我们可以在 C# 控制台应用程序中使用 Web API 2 吗?
  22. 22.使用实体框架执行 Web API 2 CRUD 操作。
  23. 23. 如何在 Web API 中启用 HTTPs?
  24. 24. 如何在 ASP.Net Web API 中实现基本身份验证?
  25. 25. Web API 中的基于令牌的身份验证是什么?
  26. 26. .Net Web API 中的内容协商是什么?
  27. 27. 什么是 ASP.Net 身份?
  28. 28. .Net Web API 中的 Bearer Authentication 是什么?
  29. 29.什么是 REST?
  30. 30.什么不是 REST?
  31. 31. REST 和 SOAP 有什么区别?
  32. 32. ASP.NET MVC 和 ASP.NET Web API 之间有什么区别?
  33. 33. ASP.NET Web API 真的取代了 WCF 吗?
  34. 34. 解释 Web API 2 中的媒体格式化程序
  35. 35. Web API 支持哪种协议?
  36. 36. MVC 和 Web API 有哪些相似之处?
  37. 37. MVC和Web API有什么区别?
  38. 38.谁可以使用 Web API?
  39. 39. Web API 中请求如何映射到 Action 方法?
  40. 40. 不使用 HTTP 属性是否可以将 HTTP 请求映射到操作方法?
  41. 41. 如何给网站添加证书?
  42. 42. 编写一个 LINQ 代码来验证用户身份?
  43. 43. 如何在 jQuery 中导航到另一个页面?
  44. 44. 如何为 ASP.NET 网站启用 SSL?
  45. 45. 如何在 Web API 中使用 Authorize 属性提及角色和用户?
  46. 46. 我们可以在路线级别施加限制吗?
  47. 47.如何启用属性路由?
  48. 48. Web API中参数如何获取值?
  49. 49.为什么在Web API路由中使用“api/”段?
  50. 50. 在 Web API 中可以有 MVC 类型的路由吗?
  51. 51. Web API中定义的路由在哪里?
  52. 52.如何构造HtmlResponseMessage?
  53. 53. Web API 默认支持的媒体类型有哪些?
  54. 54 Web API 中的“其他返回类型”有什么缺点?
  55. 55. Web API 中 IHttpActionResult 返回类型的命名空间是什么?
  56. 56.为什么Web API很重要?
  57. 57.哪个 .NET 框架支持 Web API?
  58. 58. Web API 支持哪些开源库进行 JSON 序列化?
  59. 59.在 Web API 中使用 REST 有哪些优点?
  60. 60.什么时候需要选择 ASP.NET Web API?
  61. 61.你对Web API中的TestApi有什么了解?
  62. 62. 如何在 Web API 中使用 HttpError 处理错误?
  63. 63.我们可以在 C# 控制台应用程序中使用 Web API 2 吗?
  64. 64. 如何在 ASP.Net Web API 中实现基本身份验证?
  65. 65.给出Web API中参数的示例。
  66. 66. 举一个例子来指定 Web API 路由。
  67. 67.如何全局注册一个异常过滤器?
  68. 68. Web API 中使用了哪些不同的 HTTP 方法?
  69. 69. Web API中的HttpConfiguration是什么?
  70. 70. 解释代码片段以展示如何从 HttpError 返回 404 错误。
  71. 71. 从动作中注册异常过滤器的代码是什么?
  72. 72. 用于开发或测试 Web API 的测试工具或 API 有哪些?
  73. 73. 如何在 Web API 中传递多种复杂类型?
  74. 74. 在.NET Web API 中传递 ArrayList 的代码是什么?
  75. 75. 什么是 HTTP 状态代码?
  76. 76. 不同的 HTTP 状态代码如何分类?
  77. 77.常见的HTTP响应状态代码是什么?
  78. 78. 网站所有者如何避免 HTTP 状态代码?
  79. 79. 验证页面上所有控件的名称方法?
  80. 80. DelegatingHandler 有什么用?
  81. 81. 什么是互联网媒体类型?
  82. 82. Web API 可以返回 HTML 视图吗?
  83. 83. Web API 中“返回类型为空”的状态码是什么?
  84. 84.您能详细说明一下不同的 Web API 过滤器吗?
  85. 85.ApiController和Controller有什么区别?
  86. 86. XML 和 JSON 有什么区别?
  87. 87. 缓存是什么意思?
  88. 88. 缓存有哪些类型?