我正在开发RESTLet webservices,为此我使用的是Restlet 2.0 API。
我想在webservices上实现Filter和Validator。
我已成功实施过滤器。在过滤器类中,我检查请求是否经过身份验证意味着它是从有效用户调用的。我正在检查标头字段以验证请求。这是我的代码 -
public class MyFilter extends Filter {
@Override
protected int beforeHandle(Request request, Response response) {
// Conditions to check the header feild
}
}
我的Application类是 -
public class MyApplication extends Application{
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
Filter filter = new MyFilter(getContext());
filter.setNext(MyWebservice.class);
router.attach("/myWebservice", filter);
return router;
}
}
现在我想实现Validator类来检查请求是否包含必需参数。我想在过滤器后跟随验证器。但是在应用程序类中,我们可以提供Filter或Validator。我没有得到任何用filter实现验证器的例子。
所以请帮我在restlet中使用Filter实现Validator。
答案 0 :(得分:0)
它被设置为使用'责任链'模式 - 只需尝试将Validator设置为'Next'而不是Resource类,然后将资源设置为其链中的下一个。
你的代码:
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
Filter filter = new MyFilter(getContext());
filter.setNext(new MyValidator(getContext(), MyWebservice.class));
router.attach("/myWebservice", filter);
return router;
}
}