0

我正在开发 RESTLet 网络服务,为此我使用的是 Restlet 2.0 API。

我想在 web 服务上实现过滤器和验证器。

我已经成功实现了过滤器。在过滤器类中,我正在检查请求是否经过身份验证意味着它是从有效用户调用的。我正在检查标头字段以验证请求。这是我的代码 -

public class MyFilter extends Filter {

@Override
    protected int beforeHandle(Request request, Response response) {
           // Conditions to check the header feild
        }
}

我的应用程序类是 -

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 类来检查请求是否包含所需的参数。我想在过滤器之后关注验证器。但在应用程序类中,我们可以提供过滤器或验证器。我没有得到任何使用过滤器实现验证器的示例。

所以请帮助我在restlet中实现带有过滤器的验证器。

4

1 回答 1

0

它设置为使用“责任链”模式 - 只需尝试将验证器设置为“下一个”而不是资源类,然后资源类将资源设置为链中的下一个。

调整您的代码:

@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;
     }
}
于 2013-09-03T10:32:18.780 回答