
com.github.bingoohuang.springrestclient.utils.RequestParamsHelper Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of spring-rest-client Show documentation
Show all versions of spring-rest-client Show documentation
convenient spring rest client for rest services
package com.github.bingoohuang.springrestclient.utils;
import com.google.common.collect.Maps;
import org.springframework.context.ApplicationContext;
import java.util.Map;
public class RequestParamsHelper {
final Map fixedRequestParams;
final Map requestParams;
final ApplicationContext appContext;
public RequestParamsHelper(Map fixedRequestParams, Map requestParams, ApplicationContext appContext) {
this.fixedRequestParams = fixedRequestParams;
this.requestParams = requestParams;
this.appContext = appContext;
}
private boolean isQueryParam(String name) {
return name.startsWith("q^");
}
private String parseQueryRealName(String name) {
return name.substring(2);
}
Map createQueryParams() {
Map queryParams = Maps.newHashMap();
for (Map.Entry entry : fixedRequestParams.entrySet()) {
String name = entry.getKey();
if (isQueryParam(name)) {
Object value = createFixedRequestParamValue(entry);
queryParams.put(parseQueryRealName(name), value);
}
}
for (Map.Entry entry : requestParams.entrySet()) {
String name = entry.getKey();
if (isQueryParam(name)) {
queryParams.put(parseQueryRealName(name), entry.getValue());
}
}
return queryParams;
}
Map mergeRequestParams() {
Map mergedRequestParams = Maps.newHashMap();
for (Map.Entry entry : fixedRequestParams.entrySet()) {
String name = entry.getKey();
Object value = createFixedRequestParamValue(entry);
if (isQueryParam(name)) name = parseQueryRealName(name);
mergedRequestParams.put(name, value);
}
for (Map.Entry entry : requestParams.entrySet()) {
String name = entry.getKey();
if (isQueryParam(name)) name = parseQueryRealName(name);
mergedRequestParams.put(name, entry.getValue());
}
return mergedRequestParams;
}
Map mergeRequestParamsWithoutQueryParams() {
Map mergedRequestParams = Maps.newHashMap();
for (Map.Entry entry : fixedRequestParams.entrySet()) {
String name = entry.getKey();
Object value = createFixedRequestParamValue(entry);
if (isQueryParam(name)) continue;
mergedRequestParams.put(name, value);
}
for (Map.Entry entry : requestParams.entrySet()) {
String name = entry.getKey();
if (isQueryParam(name)) continue;
mergedRequestParams.put(name, entry.getValue());
}
return mergedRequestParams;
}
private Object createFixedRequestParamValue(Map.Entry entry) {
Object value = entry.getValue();
if (value instanceof Class && value != void.class) {
Class requiredType = (Class) value;
Object bean = Obj.getOrCreateBean(appContext, requiredType);
value = bean.toString();
}
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy