XRequest.java 1.16 KB
package com.xiniunet.open.api.client;

import java.util.Map;

/**


 */
public interface XRequest<T extends XResponse> {
    /**
     * 获取TOP的API名称。
     *
     * @return API名称
     */
    String getApiMethodName();

    /**
     * 获取所有的Key-Value形式的文本请求参数集合。其中:
     * <ul>
     * <li>Key: 请求参数名</li>
     * <li>Value: 请求参数值</li>
     * </ul>
     *
     * @return 文本请求参数集合
     */
    Map<String, String> getTextParams();

    /**
     * @return 指定或默认的时间戳
     */
    Long getTimestamp();

    /**
     * 设置时间戳,如果不设置,发送请求时将使用当时的时间。
     *
     * @param timestamp 时间戳
     */
    void setTimestamp(Long timestamp);

    /**
     * 获取响应类型
     * @return
     */
    Class<T> getResponseClass();

    /**
     * 客户端参数检查,减少服务端无效调用
     */
    void check() throws ApiRuleException;

    /**
     * 添加HTTP请求头参数
     */
    Map<String, String> getHeaderMap();

    /**
     * 添加自定义请求参数
     */
    void putOtherTextParam(String key, String value);
}