我正在尝试创建一个使用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
服务时指定答案 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);