TogetherOS / cicada

🚀 Fast lightweight HTTP service framework.
https://crossoverjie.top/categories/cicada/
Apache License 2.0
953 stars 212 forks source link

Chain of responsibility #18

Closed crossoverJie closed 6 years ago

crossoverJie commented 6 years ago

Is your feature request related to a problem? Please describe. 目前的拦截器只能处理一个拦截任务。

Describe the solution you'd like 利用责任链模式支持灵活拓展

cjqCN commented 6 years ago

我之前也在思考拦截器的设计这块。 有cicada现在的拦截器有几点看法:

我之前设计的接口是这样的:

public interface HttyInterceptorAdapter extends HttyInterceptorWrapper, Priority, UrlPatternMatchEnable {

    @Override
    default boolean preHandle(HttyRequest request, HttyResponse response) {
        return true;
    }

    @Override
    default void postHandle(HttyRequest request, HttyResponse response) {
    }

    @Override
    int getPriority();

    @Override
    Collection<String> getIncludeUrlPatterns();

    @Override
    Collection<String> getExcludeUrlPatterns();
}

能否用在cicada中,我提个pr? 或者有其他想法?

crossoverJie commented 6 years ago

@cjqCN 见 #21