2014-10-27 28 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 
      } 
     } 
    ); 
相关问题