namespace Aop.Api
{
///
/// AOP客户端。
///
public interface IAopClient
{
///
/// 调用普通OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 响应参数对象
T Execute(IAopRequest request) where T : AopResponse;
///
/// 调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 响应参数对象
T Execute(IAopRequest request, string accessToken) where T : AopResponse;
///
/// 调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 三方应用授权token
/// 响应参数对象
T Execute(IAopRequest request, string accessToken, string appAuthToken) where T : AopResponse;
///
/// 调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 三方应用授权token
/// 目标AppId,调用SPI三方能力API时需要传递此参数
/// 响应参数对象
T Execute(IAopRequest request, string accessToken, string appAuthToken, string targetAppId) where T : AopResponse;
///
/// 使用指定的证书,调用普通OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 响应参数对象
T CertificateExecute(IAopRequest request) where T : AopResponse;
///
/// 使用指定的证书,调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 响应参数对象
T CertificateExecute(IAopRequest request, string accessToken) where T : AopResponse;
///
/// 使用指定的证书,调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 三方应用授权token
/// 响应参数对象
T CertificateExecute(IAopRequest request, string accessToken, string appAuthToken) where T : AopResponse;
///
/// 使用指定的证书,调用授权OpenAPI
///
/// 请求参数模板类型
/// 请求参数对象
/// 用户授权token
/// 三方应用授权token
/// 目标AppId,调用SPI三方能力API时需要传递此参数
/// 响应参数对象
T CertificateExecute(IAopRequest request, string accessToken, string appAuthToken, string targetAppId) where T : AopResponse;
///
/// 执行AOP公开API请求。
///
/// 领域对象
/// 具体的AOP API请求
/// 领域对象
T pageExecute(IAopRequest request) where T : AopResponse;
///
/// 执行AOP隐私API请求。
///
/// 领域对象
/// 具体的AOP API请求
/// 用户授权码
/// 请求方式,两个值可选:POST、GET;
/// 领域对象
T pageExecute(IAopRequest request, string accessToken, string reqMethod) where T : AopResponse;
///
/// 执行AOP API请求, 支持传递用户授权token和三方应用授权token(token如不需要可传递null)
///
/// 领域对象
/// 具体的AOP API请求
/// 用户授权码
/// 三方应用授权码
/// 请求方式,两个值可选:POST、GET;
/// 领域对象
T pageExecute(IAopRequest request, string accessToken, string appAuthToken, string reqMethod) where T : AopResponse;
///
/// 执行AOP公开API请求。
///
/// 领域对象
/// 具体的AOP API请求
/// 领域对象
T SdkExecute(IAopRequest request) where T : AopResponse;
///
/// 执行AOP API请求,支持传递三方应用授权token(token如不需要可传递null)
///
/// 领域对象
/// 具体的AOP API请求
/// 领域对象
T SdkExecute(IAopRequest request, string appAuthToken) where T : AopResponse;
}
}