1
我使用的是Restlet library,我想知道在通過URL訪問時是否可以調用某個類的特定方法。使用Restlet框架調用特定的方法
現在,我有這樣的事情:
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/monitor", Monitor.class);
}
通過URL訪問到/monitor/
時呼叫Monitor
類。 我希望能夠做這樣的事情:
public Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/monitor/name", Monitor.getName());
router.attach("/monitor/description", Monitor.getDescription());
}
這可能與Restlet框架? 現在我找到了解決方法是通過使用GET參數,並使用在represent
方法條件:
public StringRepresentation represent() {
String type= getQuery().getValues("type");
if(type.equals("getName")){
this.getName();
}
if(type.equals("getDescription")){
this.getDescription();
}
}
但它聽起來並不像做它的方式。
標準的JAX-RS樣式允許通過註釋來進行這種配置.. http://www.techferry.com/articles/RESTful-web-services-JAX-RS-annotations.html。 Restlet似乎具有JAX-RS支持擴展http://restlet.org/learn/guide/2.2/extensions/jax-rs ..結合這兩個URL中的信息可能會指出可能的解決方案? – arajashe
基於基本概念/監視器/名稱和/監視器/描述是資源,所以你應該爲它們使用不同的類。我不建議調用不同的方法,而是建議爲Monitor(/ monitor)使用一個資源並使用如下查詢參數過濾輸出:/ monitor?filter = name和/ monitor?filter = description – bvamos
monitor/name'只會返回一個字符串以及'monitor/description',所以它們不應該是類。它們只是公共方法返回的類的屬性。 – Alvaro