ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 15 Rest API 面试问题&答案 > 原文: [https://www.guru99.com/rest-api-interview-question-answers.html](https://www.guru99.com/rest-api-interview-question-answers.html) **1)说明什么是 REST 和 RESTFUL?** REST 代表代表性状态转移; 这是编写 Web API 的一个相对较新的方面。 RESTFUL 是指通过应用 REST 体系结构概念(称为 RESTful 服务)编写的 Web 服务,它专注于系统资源以及如何通过 HTTP 协议将资源状态传输到以不同语言编写的不同客户端。 在 RESTFUL Web 服务中,可以使用 GET,POST,PUT 和 DELETE 之类的 HTTP 方法来执行 CRUD 操作。 **2)解释用于创建 Web API 的体系结构样式吗?** 用于创建 Web API 的建筑风格是 * HTTP 用于客户端服务器通信 * XML / JSON 作为格式语言 * 简单 URI 作为服务地址 * 无状态通讯 **3)提到测试您的 Web API 需要哪些工具?** 用于 SOAP WS 的 SOAPUI 工具和用于 RESTFUL 服务的 Firefox“海报”插件。 **4)提到 REST 支持哪些 HTTP 方法?** REST 支持的 HTTP 方法是: * **GET:**它在请求 URL 中请求资源。 它不应包含请求主体,因为它将被丢弃。 也许可以将其缓存在本地或服务器上。 * **POST:**它将信息提交给服务进行处理; 它通常应返回修改后的资源或新资源 * **PUT:**在请求 URL 处,它更新资源 * **删除:**在请求 URL 处删除资源 * **选项:**它指示支持哪些技术 * **HEAD:**关于请求 URL,它返回元信息 **5)提及是否可以使用 GET 请求而不是 PUT 创建资源?** 不,您不应将 PUT 用于 GET。 GET 操作应仅具有查看权限,而 PUT 资源用于更新数据。 **6)提到 REST 架构中的资源是什么?** 资源由逻辑 URL 标识; 它是 RESTful 设计的关键要素。 与 REST 中的 SOAP Web 服务不同,您将产品数据视为一种资源,并且该资源应包含所有必需的信息。 **7)提及 AJAX 和 REST 有什么区别?** | **AJAX** | **REST** | | * 在 Ajax 中,使用 XMLHttpRequest 对象将请求发送到服务器。 该响应由 JavaScript 代码用来动态更改当前页面。 * Ajax 是一种技术; 它是一种动态更新 UI 部分而无需重新加载页面的技术。 * Ajax 消除了客户与服务器之间的异步交互 | * REST 具有 URL 结构和围绕资源使用的请求/响应模式。 * REST 是一种软件体系结构,是一种用于用户从服务器请求数据或信息的方法 * REST 需要客户与服务器之间的交互 | **7)提到 REST 的一些关键特性?** REST 的一些关键特性包括 * REST 是无状态的,因此 SERVER 没有状态(或会话数据) * 使用良好应用的 REST API,可以在两次调用之间重新启动服务器,因为每个数据都将传递到服务器 * Web 服务通常使用 POST 方法进行操作,而 REST 使用 GET 访问资源 **8)提及不同的应用程序集成样式?** 不同的集成样式包括 * 共享数据库 * 批量文件传输 * 调用远程过程(RPC) * 通过面向消息的中间件(MOM)交换异步消息 **9)说明 JAXB 与 RESTful Web API 有何关系?** JAXB 代表 XML 绑定的 Java 架构。 **10)提一下 PUT 和 POST 有什么区别?** “ PUT”将文件或资源放在特定的 URI 上,并确切地放在该 URI 上。 如果该 URI 处已经有文件或资源,则 PUT 会更改该文件或资源。 如果那里没有资源或文件,那么 PUT 将创建一个 POST 将数据发送到特定的 URI,并期望该 URI 上的资源可以处理请求。 此时,Web 服务器可以决定在指定资源的上下文中如何处理数据 PUT 是幂等的,多次调用它不会对资源产生影响。 但是,POST 不是幂等的,这意味着如果多次调用 POST,它将继续创建更多资源 **11)提到在静态 Web API 中可以使用哪种标记语言?** JSON 和 XML 是可在静态 Web API 中使用的两种标记语言 **12)提一下 RPC 或文档样式的 Web 服务之间有什么区别? 您如何确定选择哪一个?** 在文档样式的 Web 服务中,我们可以将 XML 消息作为 SOAP 请求的一部分进行传输,而这在 RPC 样式的 Web 服务中是不可能的。 文档样式 Web 服务最适合某些应用程序,其中 XML 消息的行为与文档相同,并且该文档的内容可以更改,并且 Web 服务的意图不依赖于 XML 消息的内容。 **13)提及什么是 JAX-WS 和 JAX-RS?** JAX-WS 和 JAX-RS 都是用于以 Java 各种方式进行通信的库(API)。 JAX-WS 是一个可用于在 JAVA 中进行 SOAP 通信的库,而 JAX-RS 可让您在 JAVA 中进行 REST 通信。 **14)列出用于开发或测试 Web API 的工具或 API?** REST API 的 Web 服务测试工具包括 * 使用 MVC 的 Spring REST Web 服务 * 泽西岛 API * CXF * 轴 * Restlet, **15)提一下 SOAP 和 REST 有什么区别?** | **SOAP** | **REST** | | * SOAP 是一种协议,两台计算机可以通过共享 XML 文档进行通信。 * SOAP 仅允许 XML * 基于 SOAP 的读取不能被缓存 * SOAP 就像 定制桌面应用程序,它紧密连接到服务器 * SOAP 比 REST 慢 * 它在 HTTP 上运行,但封装了消息 | * Rest 是基于网络的软件体系结构的服务体系结构和设计 * REST 支持许多不同的数据格式 * REST 读取可被缓存 * A REST 客户更像是一个浏览器; 它知道如何标准化方法,并且应用程序必须适合其中 * REST 比 SOAP * 更快,它使用 HTTP 标头保存元信息 |