
2024年免费的文本工具API接口清单
Web API 是一个重要的应用程序编程接口,它支持在各种浏览器和设备(如平板电脑、手机等)上提供 Web 服务。它因其轻量级和更简单的服务而具有重要意义,并且可以用作独立的 Web 服务应用程序。
如果您是 Web API 的学生或正在开发此框架能力的专业人士,您已经知道拥有可靠的 Web API 面试问题资源的重要性。由于 Web API 的重点是实用性,因此任何问题集合都必须解决 Web API 在实际场景中的应用。这些面试问题还可以帮助您为该领域的梦想工作做好准备。
通过深入研究这些 Web API 面试问题,让我们更多地了解 Web API,这将有助于您参加工作面试或增强您对该主题的整体知识和理解。
Web API 面试问题
答:ASP.Net Web API 是一个帮助塑造和使用基于 HTTP 的服务的框架。处理移动应用程序和 Web 浏览器的客户端可以使用 Web API。
答:Web API 适用于基于 HTTP 的服务,而 WCF REST API 则适用于消息队列、单向消息传递和双工通信。WEB API 支持任何媒体格式,甚至 XML 和 JSON,而 WCF 支持 SOAP 和 XML 格式。ASP.Net Web API 非常适合构建 HTTP 服务,而 WCF 非常适合开发面向服务的应用程序。要运行 Web API,不需要任何配置,而对于 WCF,则需要进行大量配置才能运行它。
答:使用 ASP.Net Web API 的优点如下:
答:ASP.Net Web API 中的各种返回类型有:
答:它是决定应该调用的动作和控制器的流程。
在 Web API 中加入路由的方法包括:
答:Web API中的媒体类型格式化程序包括:
A:CORS 是跨源资源共享的缩写,CORS 解决了 JavaScript 的同源限制,同源是指 JavaScript 只对同源的网页进行 AAJAX 调用。
您必须使用包管理器控制台安装 CORS nuget 包才能在 Web API 中启用 CORS。
打开 WebAPIConfig.cs 文件
添加 config.EnableCors();
在Controller类中添加EnableCors属性,并定义来源。
[EnableCors(起源:“”,标头:“*”,方法:“*”)]。
答:为了保护 ASP.Net Web API,我们需要控制 Web API,并决定谁可以访问 API,谁不能访问。任何知道 URL 的人都可以访问 Web API。
答:GET和POST是HTTP的两个重要动词。
答:Web API 可轻松与 ASP.Net Forms 一起使用。您可以在 Global.asax 文件中的 Application Start 方法中添加 Web API 控制器和路由。
答:Web API 中的异常过滤器有助于实现 IExceptionFilters 接口。当某个操作在任何时候引发异常时,它们就会执行。
答:不可以,因为 Web API 创建基于 HTTP 的服务。它主要在 MVC 应用程序中可用。
答: ASP.NET Web API 框架 v2.0引入的功能有:
答:必须添加一个属性,如下所示:
[HttpGet]
public HttpResponseMessage Test()
{
HttpResponseMessage response = new HttpResponseMessage();
///
return response;
}
[HttpPost]
public void Save([FromBody]string value)
{
}
答:为了确保 Web API 仅以 JSON 格式返回数据,请打开“WebApiConfig.cs”文件并添加以下行:
config.Formatters.JsonFormatter.SupportedMediaTypes.添加(新 MediaTypeHeaderValue(“application/json”))
答:通过添加属性ActionName,可以提供别名:
[ActionName(“InertUserData”)]
// POST api/
public void Post([FromBody]string value)
{
}
答:可以借助以下类来处理 Web API 中的错误或异常 –
答:Web API 应用程序可以通过两种方式托管:
答:HTTPClient 类中引入了 HTTPClient,用于与 ASP.Net Web API 进行通信。此 HTTPClient 类可用于控制台应用程序或 MVC 应用程序。
答:OData 是开放数据协议 (Open Data Protocol) 的缩写。它是一种基于 Rest 的数据访问协议。OData 提供了一种利用 CRUD 操作来操作数据的方法。ASP.Net Web API 支持 OData V3 和 V4。
要在 ASP.Net Web API 中使用 OData,您需要一个 OData 包。您必须在包管理器控制台中运行以下命令。
安装包 Microsoft.AspNet.Odata
答:是的,Web API 2 可以在控制台应用程序、MVC、Angular JS 或任何其他应用程序中使用。
答:可以使用带有 Web API 的实体框架执行 CRUD 操作。
答:ASP.Net Web API 通过 HTTP 协议运行。您可以创建一个类并获取一个具有 AuthorizationFilterAttribute 的类。现在检查请求的 URL 是否具有 HTTPS。
答:ASP.Net Web API 中的基本身份验证可以通过以下方式实现:客户端发送带有 Authorization 标头和单词 Basic 的请求。在基本身份验证中,Authorization 标头包含单词 Basic,后跟一个 base 64 编码的字符串。
基本身份验证的语法 –
1 | Authorization: Basic username: password |
答:这是一种保护 .Net Web API 的方法,因为它通过签名的令牌对用户进行身份验证,也称为基于令牌的方法。
答:在 ASP.Net Web API 中,内容协商是在服务器端完成的。这有助于确定媒体类型格式化程序,尤其是在返回对传入请求的响应时。
A:ASP.Net Identity 是微软提供的会员管理框架,可以非常容易地与 Web API 结合,帮助您构建安全的 HTTP 服务。
答:Bearer 认证又称为基于 Token 的认证。
答:REST代表表述性状态转移。这是一种有助于在分散环境中交换数据的架构模式。
REST 架构模式将所有服务视为资源,客户端可以使用 HTTP 协议方法(包括 PUT、GET、POST 和 DELETE)访问这些资源。
答:下面提到的不是 REST:
答: REST 和 SOAP之间有以下区别:
SOAP | REST |
SOAP 代表简单对象访问协议 | REST 代表表述性状态转移。 |
SOAP 是一种协议,称为 XML | REST 不是一种协议,但您可以将其称为用于基于资源的架构的架构模式示例。 |
SOAP 指定无状态和全状态实现 | REST 是完全无状态的。 |
SOAP 应用像 XML 这样的消息格式; | REST 不应用 XML 或 JSON 等消息格式。 |
为了公开服务,SOAP 使用接口和命名操作; | REST 使用 URI 和 POST、GET、PUT 和 DELETE 等方法来公开资源(服务)。 |
A:MVC 用于创建可以返回视图和数据的 Web 应用程序,而 ASP.NET Web API 用于创建简单的 RESTful HTTP 服务,只返回数据不返回视图。MVC 中请求映射到操作名称,而 Web API 中请求映射到基于 HTTP 动词的操作。
答:事实并非如此!它只是构建非基于 SOAP 的服务(如纯 XML 或 JSON 字符串)的另一种方式。它还具有其他优势,例如可以使用 HTTP 的全部功能并覆盖更多客户端(如移动设备等)。
答:这些是负责响应数据的类。Web API 理解请求数据格式,并以客户端期望的格式发送数据。
A:Web API 仅支持 HTTP 协议,因此只要支持 HTTP 协议的客户端就可以使用它。
答:MVC和 Web API 都基于关注点分离原则和控制器、路由和模型等概念。
答:MVC 用于开发带有用户界面的应用程序。MVC 中的视图用于开发用户界面。Web API 用于开发 HTTP 服务。为了获取数据,其他应用程序会调用 Web API 方法。
答:Web API 由支持 HTTP 动词(例如 DELETE、GET、PUT 和 POST)的客户端使用。由于 Web API 服务不需要任何配置,因此客户端可以非常轻松地使用它们。便携设备可以非常轻松地使用 Web API。
答:由于 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 请求:
A:对于动作方法,有两种方式映射 HTTP 请求。第一种方式是使用动作方法上的 trait。第二种方式是以 HTTP 动词开头命名方法。例如,定义一个 GET 方法,可以定义为:
public void GetEmployee(int id)
{
StudentRepository.Get(id);
}
由于它可以以GET开头,因此上述方法可以自动与GET请求映射。
答:要将证书添加到网站,您可以按照以下步骤操作:
答:公共静态布尔登录(字符串UN,字符串密码)
{StudentDBEntities students = new StudentDBEntities()students.sudent.Any(e => e.UserName.Equals(UN) && e=>e.Password.Equlas(UN)) // students has more than one table}
答:使用 widow.location.href = “~/homw.html”;
答:为了对 ASP.NET 网站启用 SSL,您可以单击项目属性,在那里您可以看到此选项。
// Restrict by Name
[Authorize(Users=”Shiva,Jai”)]
public class StudentController : ApiController{}
// Restrict by Role[Authorize(Roles=”Administrators”)]
public class StudnetController : ApiController{}
A:是的,可以申请。
[Route(“students/{id:int}”]
public User GetStudentById(int id) { … }
[Route(“students/{name}”]
public User GetStudentByName(string name) { … }
只要 URI 的“id”部分是整数,就可以选择第一个路由。否则,可以选择第二个路由。
答:要启用属性路由,可以在 WebApi 配置文件中调用 MapHttpAttributeRoutes(); 方法。
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
// Other Web API configuration not shown.
}
答:参数在Web API中获取值的方式如下:
答:“api/” 段用于避免与 ASP.NET MVC 路由冲突
答:可以在 Web API 中实现 MVC 类型的路由。
答:它放在App_Start目录中。
App_Start –> WebApiConfig.cs
routes.MapHttpRoute(
name: “myroute”,
routeTemplate: “api/{controller}/{id}”,
defaults: new { id = RouteParameter.Optional }
);
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;
}
}
A:Web API 默认支持的媒体类型有 XML、form-urlencoded 数据、JSON、BSON,其他支持的媒体类型可以通过编写媒体格式化程序来实现。
A:Web API中“其他返回类型”最大的缺点就是不会直接返回类似404错误这样的错误代码。
答:System.Web.Http.Results 命名空间
我们还有其他几种与 Web API 类似的技术,但由于以下几个原因,它是最重要的,并且比其他技术更受欢迎 –
Web API支持的.NET Framework版本包括4.0及以上版本。
JSON.NET 库是一个用于通过 Web API 进行 JSON 序列化的高性能 JSON 框架。
REST 在 Web API 中提供了许多优势,包括 –
在当今高度互联的数字世界中,我们正在将基于 Web 的服务转向移动应用程序。这意味着我们需要一个轻量级、安全、可靠且与这些智能设备兼容的 API。ASP.Net Web API 是一个框架,它满足构建许多客户端(包括浏览器和现代设备,如手机、平板电脑等)使用的 HTTP 服务的所有要求。
Web API 中的 TestAPi 是一个实用程序库,允许开发人员创建测试工具以及自动化 .NET 应用程序的测试。
HttpError 方法用于 Web API 中抛出响应主体的错误信息。也可以将“CreateErrorResponse”方法与该方法一起使用。
是的。可以在控制台应用程序、MVC、Angular JS 或任何其他应用程序中使用 Web API 2。
ASP.Net Web API 中的基本身份验证是客户端将使用带有授权标头的 Basic 一词发送请求,后跟 base 64 编码的字符串。
基本身份验证的语法 –
授权:基本用户名:密码
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;
}
}
以下是 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 }
);
您可以使用以下代码全局注册异常过滤器 –
全局配置.配置.过滤器.添加(新的MyTestCustomerStore.NotImplExceptionFilterAttribute());
虽然 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 – 此方法用于诊断目的,沿目标路径调用环回消息并使用该数据进行测试。
HttpConfiguration 是指用于覆盖默认 Web API 行为的全局服务集。它具有以下属性 –
以下是从 HttpError 返回 404 错误的代码 –
string message = string.Format(“TestCustomer id = {0} not found”, customerid);
return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
可以使用以下代码注册异常过滤器 –
[NotImplExceptionFilter]
public TestCust GetMyTestCust (int custno)
{
//write the code
}
在 Web API 中传递多种复杂类型的两种方法包括 – Newtonsoft 数组和使用 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);
HTTP 状态代码是服务器响应客户端的请求而发出的三位整数,每个数字都有其含义。
所有 HTTP 状态代码分为五类。这些包括 –
有许多 HTTP 代码是可见的,还有一些一开始不可见,但管理员可以使用浏览器扩展或某些工具观察到。识别和纠正这些错误对于增强用户体验和优化网络搜索引擎排名至关重要。
以下是最常见的 HTTP 状态代码一览 –
为了确保网站顺利运行并提供最佳的用户体验,管理员或网站所有者必须持续努力将自动生成的错误代码保持在最低限度并识别 404 错误。
可以通过 301 代码将用户重定向到其他位置(例如起始页)来避免 404 HTTP 状态代码。手动创建错误页面也可以降低网站访问者的跳出率。
系统执行Page.Validate()方法来验证页面上的所有控件。
DelegatingHandler 是用于在 ASI.Net Web API 中开发自定义服务器端 HTTP 消息处理程序并将消息处理程序链接在一起的过程。
以前称为 MIME 类型,它是指用于识别互联网上的内容(例如一段数据所包含的信息类型)的标准设计。
例如,如果我们通过电子邮件收到一个附件,这个标识符有助于了解标头中包含的附件信息的媒体类型,以便浏览器可以启动适当的插件。
了解媒体类型的信息是一种很好的做法,因为每种互联网媒体类型都必须符合以下格式 –
[类型]/[树。](可选)[子类型][+后缀](可选)[;参数]
每种媒体类型必须具有“类型”和“子类型”,以指示其包含的信息类型。例如,
图像– 类型/png – 子类型
应用程序– type/rss- subtype+xml
Web API 无法返回 HTML 视图。如果要返回视图,最好使用 MVC。
状态代码 204 将在响应有效负载主体中返回空内容。
过滤器用于在 Web API 框架内请求处理的特定阶段之前或之后添加额外的逻辑。
过滤器有多种类型。一些内置过滤器可处理授权、响应缓存等任务,而自定义过滤器可处理错误处理、授权等问题。
在 ASP.Net 管道中运行的过滤器,也称为过滤器管道,并且根据此过滤器管道中特定阶段的执行,各种类型的过滤器包括 –
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);
}
}
XML 是可扩展标记语言 (eXtensible Markup Language) 的缩写,用于存储和发送数据。JSON 是 JavaScript 对象表示法 (JavaScript Object Notation) 的缩写,用于在数据从服务器发送到网页时存储和传输数据。
除了以特定格式存储数据之外,XLM 没有太多功能,而 JSON 是一种轻量级且易于理解的数据存储格式,在 JavaScript 中广泛使用。
缓存是指将数据临时存储在缓存中以供将来使用的技术。它会在缓存中保留所有常用数据和文件的副本,从而使网站能够更快地呈现。它还有助于提高可扩展性,以便在需要时直接从内存中检索数据。
ASP.Net Web API 中最简单的缓存基于 IMemoryCache。
缓存的一些主要优点包括 –
ASP.NET Web API 中有不同类型的缓存。这些是 –
以下是实现页面输出缓存的代码 –
<%@ OutputCache Duration="30" VaryByParam="*" %>
缓存[“键”] = “值”;
本文翻译源自:https://www.mygreatlearning.com/blog/web-api-interview-questions/