直接在API包装上使用REST API有什么好处?

时间:2017-04-16 20:13:28

标签: rest api wrapper

我应该何时选择其中一个?

我看到它的方式API包装器使用起来非常简单,但我觉得有些东西我没看到,所以你能开导我吗?

1 个答案:

答案 0 :(得分:0)

REST是一种将客户端与API分离的软件设计,虽然它经常被误解为简单的URI设计,因为它通常基于HTTP。

使用支持REST的API和客户端的优点显然是客户端没有特别地耦合到任何API,因此容忍在服务器端进行的更改,例如将资源移动到不同的端点。就像浏览器能够呈现无限数量的网页内容一样,真正的RESTful客户端应该表现得相同,并且能够与任何支持REST的API进行通信。它可以通过动态查找某些处理例程(类似于某些应用程序的插件)或回退到默认处理(报告错误或将未知数据显示为纯文本)来即时学习如何处理新内容类型。

API包装器通常用于创建仅限于某个API的客户端。这简化了开发,因为客户端可以包含与API交互所需的某些逻辑,例如发送到服务或从服务接收的消息/解码消息,列出所有可用操作和类似的东西。通常,URI端点也可以通过属性注入或硬编码到应用程序中。此外,内容类型通常仅限于XML或JSON,并且有关如何处理响应的规则直接硬编码到客户端。然而,所有这些步骤都将客户端与API紧密结合在一起。如果API更改(或由其他端点丰富),则必须更新API包装并将其发送给每个使用者,否则用户将无法使用API​​或使用最新功能。

API包装器通常是为API的使用量身定制的,并且通常也更容易实现。但是,它们还需要在API本身发生变化的情况下不断更新,因为包装器本身无法处理这些更改。另一方面,REST客户端开发起来要复杂得多,因为客户端必须知道(或学习)某个响应的语义含义,并且必须以某种方式推断如何对接收到的响应采取行动。它的某些部分仍然是一个活跃的研究领域(至少在自动化处理中)。

当您询问何时使用哪个时:如果您必须创建一个通用客户端,REST客户端肯定是正确的事情。然而,确定正确的语义治疗将是这些客户IMO的真正挑战。如果您只需要为客户(或用户)提供客户端前端,并且API本身没有太多变化,则封装器可能更容易实现。但是,请不要将这样的客户端称为RESTful!