你需要知道的 13 个 REST API 面试问题
无论您使用哪种编程语言或技术,您都可能遇到过 REST 应用程序编程接口 (API)。REST 代表表述性状态转移 (Representational State Transfer),它是当今 Web 服务、微服务和 API 最广泛使用的架构风格之一。遵循 REST 架构风格的 API 被视为 REST API。
无论您是初级还是高级开发人员,面试中都可能会被问到有关 REST API 的问题。为了帮助您在下一次面试中脱颖而出,我们将讨论一些常见的 REST API 面试问题和答案。
我们将介绍:
你需要知道的 13 个 REST API 面试问题
1.什么是 REST?
REST 代表表述性状态转移 (Representational State Transfer)。REST 是一种 Web 开发架构风格。REST 架构为 Web 上客户端和服务器之间资源表述的传输制定了指导原则。
2.什么是 REST API?
REST API或RESTful API是符合 REST 架构风格的 Web API。
3. 描述 REST 架构风格的 5 个约束及其好处。
如果他们要求 6 个约束,请参阅以下有关可选约束的问题。
真正的 RESTful API 必须符合五个 REST 架构约束:
- 统一接口:
- 客户端和服务器之间的接口允许使用单一语言进行标准化的客户端-服务器通信
- 客户端与服务器解耦的必要性
- 客户端-服务器:
- 客户端-服务器模型,用于分离客户端和服务器之间的关注点
- 允许客户端和服务器独立运行和发展
- 支持可移植性和可扩展性
- 无国籍:
- 指无状态通信协议,其中服务器不存储有关会话状态的信息
- 通过减少服务器负载来提高性能
- 可缓存:
- 服务器将其响应标记为可缓存或不可缓存
- 客户端和中介能够缓存服务器响应
- 减少客户端与服务器的交互,支持可扩展性和性能
- 分层系统:
- 客户端和服务器之间的层,可以由代理服务器或负载平衡器等中介组成
- 各层职责不同,但可以相互交互
- 支持系统可扩展性和安全性
4.REST 的可选架构约束是什么?
按需代码是 RESTful 架构的可选约束。按需代码允许服务器根据客户端请求向客户端发送可执行代码(脚本或小程序)。
优点:扩展客户端功能,因为客户端可以在部署后下载功能
缺点:降低可见性,这就是为什么它被认为是可选的
例如:Java 小程序和 JavaScript
5.解释统一接口的约束。
需要一个统一的接口来将客户端与服务器解耦。
实现统一接口有四个必要的约束:
- 资源识别:客户端请求必须使用统一资源标识符(URI)来识别资源
- 通过这些表示来操作资源:当客户端从服务器接收资源表示时,它们拥有修改资源状态所需的所有信息
- 自描述消息:消息包含接收者解释它所需的所有信息,包括元数据
- 超媒体作为应用程序状态的引擎:超媒体(例如 HTML)是客户端与服务器交互的媒介,客户端不需要特定于 API 的文档即可理解服务器响应
6.什么是 CRUD?
CRUD是关系数据库管理系统 (RDBMS) 中使用的四种基本操作的首字母缩写词。
CRUD 中的每个操作都与 REST 支持的 HTTP 方法相关。
- 创造:
POST
- 读:
GET
- 更新:
PUT
- 删除:
DELETE
7. 解释REST支持的HTTP请求方法,以及何时使用它们。
REST API 基于 HTTP 请求或动词,每个请求或动词执行不同的任务。
REST 支持以下 HTTP 请求:
- GET方法:向服务器请求数据
- POST方法:提交数据以在服务器定义的 URL 上创建新资源
- PUT方法:提交数据以更新客户端定义的 URL 上的资源
- DELETE方法:从服务器中删除资源
- OPTIONS方法:返回服务支持的请求方法
- HEAD方法:返回响应头等元信息
- PATCH方法:修改服务器上的部分资源
8.PUT和POST方法有什么区别?
这个问题可能会让一些开发人员感到困惑。能够解释清楚这一点,能让你脱颖而出,成为真正懂行的人。
以下是 PUT 和 POST 之间的区别:
PUT:
- 幂等(即多个请求将产生相同的结果)
- PUT 响应不可缓存
- 使用请求的有效负载更新或替换目标资源
邮政:
- 非幂等(即多个请求将产生多个相同资源)
- 只要提供正确的缓存控制标头,POST 响应就可以被缓存
- Web 服务器根据目标资源处理请求的有效负载
理解幂等性:幂等运算的一个例子是将一个数乘以一。无论你将五乘以一多少次,都会得到相同的结果。
9.解释 REST 中的无状态含义。
无状态意味着客户端和服务器不存储彼此的状态信息。由于服务器不存储任何信息,因此它会将每个客户端请求视为一个新请求。
因此,将适用以下条件:
- 客户端请求包含服务器处理请求所需的所有信息
- 客户端应用程序负责存储会话状态
10.REST API 的优点和缺点是什么?
了解 RESTful API 的优点和缺点非常重要。
优点包括:
- 专为高性能、可移植性、可靠性和可扩展性而设计
- 客户端-服务器分离允许每个服务器单独操作和扩展
- 易于测试并适应各种环境
- 由于使用 HTTP 协议,因此易于学习
- 支持各种数据传输技术,包括 JSON、XML、YAML、图像等
- 比其他方法(例如简单对象访问协议 (SOAP) 技术)占用更少的带宽
缺点包括:
- 不执行安全措施
- HTTP 方法限制您进行同步请求
- 由于无状态,您可能无法维持状态(例如在会话中)
11.AJAX和REST有什么区别?
这种区别可能会让初级开发人员感到困惑,因此了解这种区别会很有帮助。
AJAX 客户端可以向 REST API 发出 RESTful 请求(例如,GET 请求),但AJAX 并非一种架构风格。它是一种用于客户端应用程序的 Web 开发技术。AJAX 客户端可以访问 REST API,但它们并非天生就由 AJAX 实现。
12.SOAP和REST有什么区别?
虽然一些 REST API 使用 SOAP 协议,但 REST 和 SOAP 是完全不同的 API 构建方法。面试官可能会问这个问题来评估你的理解深度。
以下是 SOAP 和 REST 之间的一些区别
。SOAP:
- 协议
- 数据格式仅限于 XML
- 重量级,需要更多带宽
- 无法缓存通话
休息:
- 建筑风格
- 允许各种数据格式,包括纯文本、HTML、XML、JSON 和 YAML
- 重量轻,占用带宽较少
- 可以缓存调用
13.解释HTTP响应状态代码。
HTTP 响应代码指示客户端请求的结果。
常见的HTTP状态码有:
- 200:请求成功
- 201:成功请求后创建的实体
- 400:错误请求。无效的客户端请求。
- 401:未授权。用户未获得访问资源的授权,可能未经身份验证。
- 403:禁止访问。用户无权访问资源,用户已通过身份验证
- 404 : Not found. 资源未找到
- 500:内部服务器错误。一般服务器错误
- 502:网关错误。上游服务器的响应无效
- 503:服务不可用。服务器端问题导致,包括过载或系统故障
总结和后续步骤
恭喜!现在你已经掌握了一些常见的 REST API 面试题和答案。接下来的学习内容取决于你的目标。
如需准备面试,请查看Educative 的面试准备课程。在这里,您可以一站式找到我们所有的面试准备资源,从教程、练习题到行业专家的技巧,应有尽有。
要亲身体验 REST API,请查看我们的交互式 REST API 课程之一:
- 学习 Java 中的 REST 和 SOAP API 测试自动化
- 使用 Deno 和 Oak 创建 CRUD REST API
- 使用 Python 构建 REST API 并将其部署到 Microsoft Azure
学习愉快!
继续阅读有关 Educative 上的 API 和面试准备的信息
开始讨论
您正在练习哪些 REST API 面试题?本指南对您有帮助吗?请在下方评论区留言告诉我们!
鏂囩珷鏉ユ簮锛�https://dev.to/educative/13-rest-api-interview-questions-you-need-to-know-pnd