RestOperation.java 1.31 KB
package com.cjs.cms.util.net;

import java.util.Collection;
import java.util.List;
import java.util.Map;

import org.springframework.web.client.RestOperations;

/**
 * 扩展RestOperations接口
 * 
 * @author tongyufu
 *
 */
public interface RestOperation extends RestOperations {

    <T> List<T> getForList(String url, Class<T> elementType, Object... urlVariables);

    <T> List<T> getForList(String url, Class<T> elementType, Map<String, ?> urlVariables);

    <T> List<T> postForList(String url, Object request, Class<T> elementType,
                            Object... urlVariables);

    <T> List<T> postForList(String url, Object request, Class<T> elementType,
                            Map<String, ?> urlVariables);

    /**
     * 使用POST请求发送JSON字符串
     * @param url 请求路径
     * @param request 请求体
     * @param responseType 返回值类型
     * @return
     */
    <T> T postForJson(String url, String request, Class<T> responseType);

    /**
     * 使用POST请求发送JSON字符串
     * @param url 请求路径
     * @param request 请求体
     * @param responseType 返回值类型
     * @return
     */
    <L extends Collection<E>, E> L postForJson(String url, String request,
                                               Class<L> collectionClass, Class<E> elementClass);
}