Interface CustomHttpClient

All Known Implementing Classes:
DefaultMailtrapHttpClient

public interface CustomHttpClient
Interface representing a custom HTTP client for accessing API. Default implementation DefaultMailtrapHttpClient uses Java's HttpClient

Implement your own client to use different http client or handle API communications in a different manner and pass it via MailtrapConfig

  • Method Details

    • get

      <T> T get(String url, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      Parameters:
      url - Request url
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • getList

      <T> List<T> getList(String url, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      Parameters:
      url - Request url
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • delete

      <T> T delete(String url, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      Parameters:
      url - Request url
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • head

      <T> T head(String url, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      Parameters:
      url - Request url
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • post

      <T, V extends AbstractModel> T post(String url, V data, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      V - Request type
      Parameters:
      url - Request url
      data - Request body. By default, would be converted to string using AbstractModel.toJson()
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • put

      <T, V extends AbstractModel> T put(String url, V data, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      V - Request type
      Parameters:
      url - Request url
      data - Request body. By default, would be converted to string using AbstractModel.toJson()
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • patch

      <T, V extends AbstractModel> T patch(String url, V data, RequestData requestData, Class<T> responseType) throws HttpException
      Type Parameters:
      T - Return type
      V - Request type
      Parameters:
      url - Request url
      data - Request body. By default, would be converted to string using AbstractModel.toJson()
      requestData - Additional request data - headers and query parameters
      responseType - Return class type
      Returns:
      Response type
      Throws:
      HttpException - in case any error. Might throw specific HttpClientException for HTTP response codes 4xx or HttpServerException for HTTP response codes 5xx
    • appendUrlParams

      default String appendUrlParams(String url, Map<String,? extends Optional<?>> urlParams)
      Appends query parameters to the given URL.
      Parameters:
      url - The base URL
      urlParams - A map containing query parameters to append to the URL. The keys represent parameter names, and the values represent optional parameter values. If a parameter value is absent, it will be skipped.
      Returns:
      The URL with appended query parameters. If no parameters are provided, returns the original URL unchanged.