使用CRest的可配置端点

时间:2011-01-27 19:45:01

标签: java android rest

我正在尝试创建一个使用CRest与RESTful Web服务进行交互的Android应用程序。

我遇到的问题是创建服务。在twitter示例中,EndPoint设置为静态URL(api.twitter.com),但在我的情况下,我需要它是可配置的,因为在用户指定端点之前我们不会知道端点。

我想做的事情就是这样:

@EndPoint("http://%s.somedomain.com")
@ContextPath("/admin")

public interface ProductService {
    @Path("/products.json")
    InputStream getProducts();

    @Path("/products/{0}.json")
    InputStream getProduct(int id);
}

我是否可以在创建EndPoint

服务时指定

2 个答案:

答案 0 :(得分:0)

看看quick start链接,在底部你可以找到这段代码:

Properties props = new Properties();
props.setProperty("service.end-point", "http://127.0.0.1:8080");

CRest crest = new CRestBuilder()
                        .overrideDefaultConfigWith(props)
                        .build();

下一个版本将有一种更简单的方法,可以通过构建器或通过在注释值上使用占位符的约定来实现。

答案 1 :(得分:0)

顺便说一下,占位符实现在那里,现在记录http://crest.codegist.org/annotations/api.html

@EndPoint("http://{my.interface.host}")
public interface MyInterface {
    ...
}

一起使用
String myInterfaceHost = ...;

CRest crest = CRest.placeholder("my.interface.host", myInterfaceHost).build();

MyInterface myInterface = crest.build(MyInterface.class);