2013-02-19 102 views
0

我正在使用提供兩種類型的API的CRM系統:servlet API & REST API,它們都是HTTP。Servlet API與REST API

我曾經通過調用REST URL並操縱返回的JSON或XML來與我的ASP.NET MVC Web應用程序中的REST API集成。但我無法弄清楚servlet API的含義,並且可以通過ASP.NET MVC應用程序通過Web調用這些API,還是應該在Java應用程序中調用這些API?

對不起,如果我的問題似乎對某人微不足道。

+2

如果我們只知道它是哪個CRM系統,我們可以閱讀文檔並嘗試理解。但是一個servlet API確實不是很清楚。它使用servlet實現的事實是無關緊要的。重要的是用來稱呼它的協議,它作爲參數的方式和方式,以及它返回的內容。 – 2013-02-22 17:57:38

+0

解決方案是「ManageEngine Service DeskPlus」版本8.1。 – 2013-02-27 09:59:29

+1

閱讀此文檔的頁面。這兩種API的差異和特徵都有明確的解釋:http://www.manageengine.com/products/service-desk/help/adminguide/index.html – 2013-02-27 10:29:27

回答

2

Java Servlet API是指用於實現服務器端程序的一組類。主要播放器是the Servlet

servlet是一個小的Java程序,運行在Web服務器中。 Servlet通常通過HTTP(超文本傳輸​​協議)接收和響應來自Web客戶端的請求。

如果你想要一個非常簡單的類比,Servlet是Java的CGI(通用網關接口)版本。

REST API是一種通過充分利用Web體系結構來構建應用程序的方法。將REST的所有細節放在一邊並大大簡化,它基本上就是一個HTTP API。

如果你想建立一個HTTP API,你可以使用Servlets。因此,您也可以使用servlet來構建REST API,儘管有更好的選擇(例如JAX-RS),因爲servlet是「低級」組件,沒有任何東西可以屏蔽您需要編寫的所有鍋爐代碼。

您當然可以從其他客戶端(例如ASP.NET MVC)調用構建在Servlet API之上的Java應用程序。這就是它的目的。基於這個原因,我並不真正瞭解你的CRM系統究竟是什麼意思的一個Servlet API和(一個單獨的!)REST API ......所以也許問CRM提供商?

編輯:根據我已閱讀的有關ManageEngine Service deskPlus APIs,我認爲這只是供應商選擇的一個不幸的名字。

正如我在我的評論中提到的,當你說REST API時,你已經從一開始就提供了一些信息。大多數人在被告知REST知道您擁有一些抽象資源時,這些資源可以具有多種表示形式(JSON,XML等等),每種資源都由一個URI標識,/customers指的是客戶資源列表,這/customers/1是客戶和/customers/2是另外一個,你用GET /customers/1,瞭解客戶詳細信息並DELETE /customers/1將其刪除等

剩下的就是與應用程序交互的一種方式,另一種是將暴露操作可以由客戶調用,例如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功能的客戶端。

+0

感謝您的回覆,那麼Servlet API就是一種REST API,我也有同樣的問題,爲什麼有兩種類型的API? – 2013-02-25 15:20:15

+2

@John Peter:事實上,它是一個Servlet API是無關緊要的(這只是實現)。協議是重要的一點,那就是HTTP。 REST也通過HTTP實現(大部分),所以我不明白爲什麼有兩個HTTP API。一個REST API有一些規則:你使用所有的HTTP動詞(GET,POST,PUT,...),你擁有所有資源的標識符,它是無狀態的等等。如果你說Servlet API,你不會傳遞任何其他信息比接受請求並提供迴應。重要的是這些要求和迴應是什麼!它可能是RPC的一種形式...... – Bogdan 2013-02-25 21:07:42

+1

...您可以使用GET在服務器上調用某些操作,然後使用POST對其進行更改(類似於傳統形式的SOAP)。它可能是任何東西!正如@JB Nizet所提到的,如果我們知道它是哪個CRM系統,我們可以閱讀文檔並嘗試理解......那麼哪種CRM是它?如果它是一個專有的,然後問供應商爲什麼這兩個API或可能會添加一些更詳細的問題... – Bogdan 2013-02-25 21:12:14