1

我正在使用提供两种 API 的 CRM 系统:servlet API 和 REST API,这两种 API 都通过 HTTP。

我曾经通过调用 REST URL 并操作返回的 JSON 或 XML 来与我的 ASP.NET MVC Web 应用程序中的 REST API 集成。但我无法弄清楚 servlet API 是什么意思,这些 API 可以从我的 ASP.NET MVC 应用程序通过 Web 调用,还是应该在 Java 应用程序中调用这些 API?

对不起,如果我的问题对某人来说似乎微不足道。

4

1 回答 1

3

Java Servlet API 是指一组用于实现服务器端程序的类。主要参与者是Servlet

servlet 是在 Web 服务器中运行的小型 Java 程序。Servlet 接收和响应来自 Web 客户端的请求,通常通过 HTTP,即超文本传输​​协议。

如果你想要一个非常简单的类比,Servlet 就是 Java 版本的CGI(通用网关接口)。

REST API 是一种通过充分利用 Web 架构来构建应用程序的方法。抛开 REST 的所有细节并大大简化,它基本上是一个 HTTP API。

如果要构建 HTTP API,可以使用 Servlet。因此,您也可以使用 servlet 来构建 REST API,尽管有更好的替代方案(例如JAX-RS),因为 servlet 是一个“低级”组件,没有什么可以保护您免受您需要编写的所有样板代码的影响。

您当然可以从其他客户端(例如,从 ASP.NET MVC)调用构建在 Servlet API 之上的 Java 应用程序。这就是它的目的。出于这个原因,我真的不明白你的 CRM 系统究竟意味着什么 Servlet API 和(一个单独的!?) REST API ......所以也许问问 CRM 提供商?

编辑:根据我所读到的有关 ManageEngine ServicedeskPlus API 的内容,我认为这只是提供商选择的一个不幸的名称。

正如我在评论中提到的,当您说REST API 时,您已经从一开始就提供了一些信息。大多数人在被告知 REST 时都明白您有一些抽象资源,这些资源可以有多种表示形式(JSON、XML 等等),每个资源都由一个 URI 标识,/customers即指的是客户资源列表,/customers/1是客户,这/customers/2是另一个客户,您可以使用它GET /customers/1来查找有关客户的详细信息并将DELETE /customers/1其删除等。

REST 是与应用程序交互的一种方式,另一种是公开可由客户端调用的操作,例如SOAP正在执行的操作。在 REST 成为镇上的新生事物之前,人们使用 SOAP 做事。与访问资源不同,SOAP 专注于访问操作。当您向某人提及 SOAP 时,她知道它是一种可以使用 HTTP 的 POST 来传输消息的协议,每条消息都有一个 XML 有效负载,其中包含要调用的操作名称和调用所需的参数等。

但甚至在 SOAP 和 REST 广为人知之前,人们就意识到他们可以使用表单提交通过 HTTP潜入RPC调用。基于 HTTP 表单的提交是 ManageEngine Service DeskPlus 中 API 的方法之一。但是基于表单的提交方法(据我所知)没有像 SOAP 或 REST 这样的酷名称......所以也许这就是它以 Servlet API 命名的原因?!(我再次强调这只是服务器实现,在 HTTP 协议的上下文中并不重要)。

因此得出结论:是的,您可以从 ASP.NET,甚至是 Web 浏览器或任何类型的支持 HTTP 的客户端调用 ManageEngine ServicedeskPlus Servlet API。

于 2013-02-22T17:53:54.973 回答