top.jfunc.http.holder.UrlHolder Maven / Gradle / Ivy
package top.jfunc.http.holder;
import top.jfunc.common.utils.MultiValueMap;
import java.net.URL;
import java.util.Map;
/**
* 简单的处理url的路径参数、Query参数的
* 可能返回的是完整url路径,也可能是返回的/xxx/yyy这样的路径
* @author xiongshiyan at 2019/6/28 , contact me with email [email protected] or phone 15208384257
*/
public interface UrlHolder{
/**
* 请求的URL,处理参数后的
* @return 请求的URL
*/
String getUrl();
/**
* 设置URL
* @param url url
* @return this
*/
UrlHolder setUrl(String url);
/**
* 设置URL
* @param url URL
* @return this
*/
default UrlHolder setUrl(URL url){
return setUrl(url.toString());
}
/**
*获取到 {@link RouteParamHolder} 可以对路径参数完全接管处理
* @return RouteParamHolder must not be null
*/
RouteParamHolder routeParamHolder();
/**
* 便捷地设置路径参数
* @param key key
* @param value value
* @return this
*/
default UrlHolder addRouteParam(String key, String value){
routeParamHolder().put(key, value);
return this;
}
/**
* 便捷地设置路径参数
* @param routeParams 多个路径参数
* @return this
*/
default UrlHolder setRouteParams(Map routeParams){
routeParamHolder().setMap(routeParams);
return this;
}
/**
* 获取到 {@link ParamHolder} 可以对Query参数完全接管处理
* @return ParamHolder must not be null
*/
ParamHolder queryParamHolder();
/**
* 提供便捷的设置Query参数的方法
* @param key key
* @param value value
* @param values values
* @return this
*/
default UrlHolder addQueryParam(String key, String value, String... values){
queryParamHolder().add(key, value, values);
return this;
}
/**
* 提供便捷的设置Query参数的方法
* @param queryParams 多个查询参数
* @return this
*/
default UrlHolder setQueryParams(MultiValueMap queryParams){
queryParamHolder().set(queryParams);
return this;
}
/**
* 提供便捷的设置Query参数的方法
* @param queryParams 多个查询参数
* @return this
*/
default UrlHolder setQueryParams(Map queryParams){
queryParamHolder().set(queryParams);
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy