Servlet API与REST API

时间:2013-02-19 14:47:42

标签: rest servlets

我正在使用提供两种类型的API的CRM系统:servlet API& REST API,两者都通过HTTP。

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

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

1 个答案:

答案 0 :(得分:3)

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

  

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

如果您想要一个非常简单的类比,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 Service deskPlus 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调用ManageEngine Service deskPlus Servlet API,甚至是Web浏览器或任何类型的HTTP客户端。