2014-10-27 52 views
0

我可以成功創建基於Camel的應用程序,該應用程序使用REST公開一組Web服務。 (截至目前我已經使用基於servlet的端點)。將來,我們可能會觀察到各種變化,並且仍然支持舊版本的API,因此需要支持版本控制。在與Camel集成的基於REST的服務中進行API版本管理

過去,我們通常在URL中添加param來跟蹤傳入請求的API版本。我相信HTTP頭也可以用於相同的目的。

現在在駱駝世界,我們如何跟蹤API的版本。 (例如abja.com/v1/getOrders)?

只是爲了好奇,cxfrs或restlet是否具有內置支持?

回答

1

可能性1:定義不同的切入點不同版本

例如版本1:

from("restlet:http://localhost:8080/1/users/{id}/like/{beer}") 
    .process(new Processor() { 
     public void process(Exchange exchange) { 
      // version 1 processing 
     } 
    ); 

例如,版本2:

from("restlet:http://localhost:8080/2/users/{id}/like/{beer}") 
    .process(new Processor() { 
     public void process(Exchange exchange) { 
      // version 2 processing 
     } 
    ); 

可能性2:定義一個入口點,並通過版本號給處理器

例如爲:

from("restlet:http://localhost:8080/{version}/users/{id}/like/{beer}") 
    .process(new Processor() { 
     public void process(Exchange exchange) { 
      int version = exchange.getIn().getHeader("version", Integer.class); 
      if (version == 1) { 
       // version 1 processing 
      } else { 
       // version 2 processing 
      } 
     } 
    ); 
相關問題