2010-04-16 34 views
8

我有一個基於Rails的服務器運行多個REST服務和一個基於Rails的Web UI,它使用ActiveResource與服務器交互。其他客戶端正在使用相同的服務器(例如:移動設備)。我必須爲REST接口生成文檔。我需要爲每個服務提供服務URL,輸入/輸出和錯誤文檔結構。自我記錄REST接口

理想情況下,我想在服務器端使用一個攔截器,它將基於現有流量記錄服務。我想知道是否有這樣做的寶石。

回答

1

當您應用REST架構風格時,無需記錄界面。

客戶端和服務器之間的合同由所使用的介質類型確定,如果您需要任何其他附加文檔,則您不是RESTful。

因此,不要擔心記錄您的服務,請將所有的描述性工作都放入您的媒體類型的文檔中。關於媒體類型的知識是爲您的服務器實現客戶端所必需的。

+3

。的確,REST服務並不需要像一個典型的網絡服務的WSDL,但他們確實需要一個模式。客戶端需要知道任何操作的URL,HTTP方法,輸入文檔結構,回覆結構和錯誤結構。我所要求的與您在YouTube RESt API或Twitter Twitter REST API中看到的API文檔非常相似。例如:http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-users%C2%A0show – 2010-04-16 06:26:00

+1

可以爭辯說,沒有必要爲REST服務指定HTTP方法,因爲它可以提供來自操作類型。 但實際上,如果您有自定義操作(即非CRUD操作),最好記錄預期的HTTP方法。 – 2010-04-16 06:59:35

+1

除了進入應用程序的URI(可能有很多入口URI,BTW),您提到的所有方面都需要由介質類型規範來描述。該服務完全不需要描述。例如,您基於RFC5023開發AtomPub客戶端,而不是基於某些API描述。 – 2010-04-16 07:31:18

2

Darrel和Jon是正確的,我會進一步補充說,你的API應該在它的根本上被發現。應該提供讀寫操作。

退房喬恩·摩爾的談話作進一步的討論在http://vimeo.com/20781278