2013-03-20 145 views
4

我想要提供一種方法來公開使用HTTP響應消息的Web服務(REST和SOAP接口)的特定內部版本號。HTTP響應頭 - 應用程序版本

只是爲了清楚我不想控制客戶端正在使用哪個版本的應用程序,因爲這是由流量管理器和服務註冊表處理的(我已經討論過很多),我只希望能夠稍後調試使用或正在使用的版本,例如,檢查流量管理器是否提供了正確的版本。

我花了很長的時間看HTTP規範,並使用Via

Via: MyService-1.0.0-SNAPSHOT 
使用附加 Server

Server: Apache-Coyote/1.1 
Server: MyService-1.0.0-SNAPSHOT 

使用Pragma

Pragma: application-version=1.0.0-SNAPSHOT 

之間不能決定

或顧客標題

X-ApplicationVersion: 1.0.0-SNAPSHOT 

要使用ViaServer我的心是語義上不正確,但使用X-頭蘊藏着通過代理被丟棄的風險,但Pragma是不受約束的,從而更難以解析,如果想以編程方式使用它。

我也有一種感覺,多個Server標題將不被尊重,但沒有辦法指定與我正在使用的容器(JBoss)的多個值。

這有什麼先例嗎?
任何人有任何提示?
我應該閉嘴並使用它嗎?

回答

2

要使用通過或服務器我的心是語義上不正確,但使用 的X-頭蘊藏着通過代理被丟棄的風險

我不會太擔心的X頭是下降。藉此調用易趣發現服務例如

http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&RESPONSE-DATA-FORMAT=XML&REST-PAYLOAD&keywords=harry%20potter

該響應包括該標頭。

X-EBAY-SOA-SERVICE-VERSION: 1.12.0 

我看過X頭文件用於這個目的非常多。

+0

謝謝Deepak,使用「非標準」頭文件讓我感到緊張,但似乎是元數據最常見的。我只是警惕不使用內置的功能,在這種情況下Roy Fielding會評論我的服務! :) – James 2013-03-20 14:11:26

+2

哈哈!說起羅伊和標準/風格,你可能會發現這篇博文很有趣 - http://www.subbu.org/blog/2012/04/protocols-vs-styles – 2013-03-20 14:19:08

+0

偉大的文章,感謝您的幫助! – James 2013-03-20 15:04:11