java.lang.Object
net.jacobpeterson.alpaca.openapi.marketdata.ApiClient

public class ApiClient extends Object

ApiClient class.

  • Field Details

  • Constructor Details

    • ApiClient

      public ApiClient()
      Basic constructor for ApiClient
    • ApiClient

      public ApiClient(okhttp3.OkHttpClient client)
      Basic constructor with custom OkHttpClient
      Parameters:
      client - a OkHttpClient object
  • Method Details

    • getBasePath

      public String getBasePath()
      Get base path
      Returns:
      Base path
    • setBasePath

      public ApiClient setBasePath(String basePath)
      Set base path
      Parameters:
      basePath - Base path of the URL (e.g https://data.alpaca.markets
      Returns:
      An instance of OkHttpClient
    • getServers

      public List<ServerConfiguration> getServers()
    • setServers

      public ApiClient setServers(List<ServerConfiguration> servers)
    • getServerIndex

      public Integer getServerIndex()
    • setServerIndex

      public ApiClient setServerIndex(Integer serverIndex)
    • getServerVariables

      public Map<String,String> getServerVariables()
    • setServerVariables

      public ApiClient setServerVariables(Map<String,String> serverVariables)
    • getHttpClient

      public okhttp3.OkHttpClient getHttpClient()
      Get HTTP client
      Returns:
      An instance of OkHttpClient
    • setHttpClient

      public ApiClient setHttpClient(okhttp3.OkHttpClient newHttpClient)
      Set HTTP client, which must never be null.
      Parameters:
      newHttpClient - An instance of OkHttpClient
      Returns:
      Api Client
      Throws:
      NullPointerException - when newHttpClient is null
    • getJSON

      public JSON getJSON()
      Get JSON
      Returns:
      JSON object
    • setJSON

      public ApiClient setJSON(JSON json)
      Set JSON
      Parameters:
      json - JSON object
      Returns:
      Api client
    • isVerifyingSsl

      public boolean isVerifyingSsl()
      True if isVerifyingSsl flag is on
      Returns:
      True if isVerifySsl flag is on
    • setVerifyingSsl

      public ApiClient setVerifyingSsl(boolean verifyingSsl)
      Configure whether to verify certificate and hostname when making https requests. Default to true. NOTE: Do NOT set to false in production code, otherwise you would face multiple types of cryptographic attacks.
      Parameters:
      verifyingSsl - True to verify TLS/SSL connection
      Returns:
      ApiClient
    • getSslCaCert

      public InputStream getSslCaCert()
      Get SSL CA cert.
      Returns:
      Input stream to the SSL CA cert
    • setSslCaCert

      public ApiClient setSslCaCert(InputStream sslCaCert)
      Configure the CA certificate to be trusted when making https requests. Use null to reset to default.
      Parameters:
      sslCaCert - input stream for SSL CA cert
      Returns:
      ApiClient
    • getKeyManagers

      public KeyManager[] getKeyManagers()

      Getter for the field keyManagers.

      Returns:
      an array of KeyManager objects
    • setKeyManagers

      public ApiClient setKeyManagers(KeyManager[] managers)
      Configure client keys to use for authorization in an SSL session. Use null to reset to default.
      Parameters:
      managers - The KeyManagers to use
      Returns:
      ApiClient
    • getDateFormat

      public DateFormat getDateFormat()

      Getter for the field dateFormat.

      Returns:
      a DateFormat object
    • setDateFormat

      public ApiClient setDateFormat(DateFormat dateFormat)

      Setter for the field dateFormat.

      Parameters:
      dateFormat - a DateFormat object
      Returns:
      a ApiClient object
    • setSqlDateFormat

      public ApiClient setSqlDateFormat(DateFormat dateFormat)

      Set SqlDateFormat.

      Parameters:
      dateFormat - a DateFormat object
      Returns:
      a ApiClient object
    • setOffsetDateTimeFormat

      public ApiClient setOffsetDateTimeFormat(DateTimeFormatter dateFormat)

      Set OffsetDateTimeFormat.

      Parameters:
      dateFormat - a DateTimeFormatter object
      Returns:
      a ApiClient object
    • setLocalDateFormat

      public ApiClient setLocalDateFormat(DateTimeFormatter dateFormat)

      Set LocalDateFormat.

      Parameters:
      dateFormat - a DateTimeFormatter object
      Returns:
      a ApiClient object
    • setLenientOnJson

      public ApiClient setLenientOnJson(boolean lenientOnJson)

      Set LenientOnJson.

      Parameters:
      lenientOnJson - a boolean
      Returns:
      a ApiClient object
    • getAuthentications

      public Map<String,Authentication> getAuthentications()
      Get authentications (key: authentication name, value: authentication).
      Returns:
      Map of authentication objects
    • getAuthentication

      public Authentication getAuthentication(String authName)
      Get authentication for the given name.
      Parameters:
      authName - The authentication name
      Returns:
      The authentication, null if not found
    • setUsername

      public void setUsername(String username)
      Helper method to set username for the first HTTP basic authentication.
      Parameters:
      username - Username
    • setPassword

      public void setPassword(String password)
      Helper method to set password for the first HTTP basic authentication.
      Parameters:
      password - Password
    • setApiKey

      public void setApiKey(String apiKey)
      Helper method to set API key value for the first API key authentication.
      Parameters:
      apiKey - API key
    • setApiKeyPrefix

      public void setApiKeyPrefix(String apiKeyPrefix)
      Helper method to set API key prefix for the first API key authentication.
      Parameters:
      apiKeyPrefix - API key prefix
    • setAccessToken

      public void setAccessToken(String accessToken)
      Helper method to set access token for the first OAuth2 authentication.
      Parameters:
      accessToken - Access token
    • setAWS4Configuration

      public void setAWS4Configuration(String accessKey, String secretKey, String region, String service)
      Helper method to set credentials for AWSV4 Signature
      Parameters:
      accessKey - Access Key
      secretKey - Secret Key
      region - Region
      service - Service to access to
    • setUserAgent

      public ApiClient setUserAgent(String userAgent)
      Set the User-Agent header's value (by adding to the default header map).
      Parameters:
      userAgent - HTTP request's user agent
      Returns:
      ApiClient
    • addDefaultHeader

      public ApiClient addDefaultHeader(String key, String value)
      Add a default header.
      Parameters:
      key - The header's key
      value - The header's value
      Returns:
      ApiClient
    • addDefaultCookie

      public ApiClient addDefaultCookie(String key, String value)
      Add a default cookie.
      Parameters:
      key - The cookie's key
      value - The cookie's value
      Returns:
      ApiClient
    • isDebugging

      public boolean isDebugging()
      Check that whether debugging is enabled for this API client.
      Returns:
      True if debugging is enabled, false otherwise.
    • setDebugging

      public ApiClient setDebugging(boolean debugging)
      Enable/disable debugging for this API client.
      Parameters:
      debugging - To enable (true) or disable (false) debugging
      Returns:
      ApiClient
    • getTempFolderPath

      public String getTempFolderPath()
      The path of temporary folder used to store downloaded files from endpoints with file response. The default value is null, i.e. using the system's default temporary folder.
      Returns:
      Temporary folder path
      See Also:
    • setTempFolderPath

      public ApiClient setTempFolderPath(String tempFolderPath)
      Set the temporary folder path (for downloading files)
      Parameters:
      tempFolderPath - Temporary folder path
      Returns:
      ApiClient
    • getConnectTimeout

      public int getConnectTimeout()
      Get connection timeout (in milliseconds).
      Returns:
      Timeout in milliseconds
    • setConnectTimeout

      public ApiClient setConnectTimeout(int connectionTimeout)
      Sets the connect timeout (in milliseconds). A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE.
      Parameters:
      connectionTimeout - connection timeout in milliseconds
      Returns:
      Api client
    • getReadTimeout

      public int getReadTimeout()
      Get read timeout (in milliseconds).
      Returns:
      Timeout in milliseconds
    • setReadTimeout

      public ApiClient setReadTimeout(int readTimeout)
      Sets the read timeout (in milliseconds). A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE.
      Parameters:
      readTimeout - read timeout in milliseconds
      Returns:
      Api client
    • getWriteTimeout

      public int getWriteTimeout()
      Get write timeout (in milliseconds).
      Returns:
      Timeout in milliseconds
    • setWriteTimeout

      public ApiClient setWriteTimeout(int writeTimeout)
      Sets the write timeout (in milliseconds). A value of 0 means no timeout, otherwise values must be between 1 and Integer.MAX_VALUE.
      Parameters:
      writeTimeout - connection timeout in milliseconds
      Returns:
      Api client
    • parameterToString

      public String parameterToString(Object param)
      Format the given parameter object into string.
      Parameters:
      param - Parameter
      Returns:
      String representation of the parameter
    • parameterToPair

      public List<Pair> parameterToPair(String name, Object value)
      Formats the specified query parameter to a list containing a single Pair object. Note that value must not be a collection.
      Parameters:
      name - The name of the parameter.
      value - The value of the parameter.
      Returns:
      A list containing a single Pair object.
    • parameterToPairs

      public List<Pair> parameterToPairs(String collectionFormat, String name, Collection value)
      Formats the specified collection query parameters to a list of Pair objects. Note that the values of each of the returned Pair objects are percent-encoded.
      Parameters:
      collectionFormat - The collection format of the parameter.
      name - The name of the parameter.
      value - The value of the parameter.
      Returns:
      A list of Pair objects.
    • collectionPathParameterToString

      public String collectionPathParameterToString(String collectionFormat, Collection value)
      Formats the specified collection path parameter to a string value.
      Parameters:
      collectionFormat - The collection format of the parameter.
      value - The value of the parameter.
      Returns:
      String representation of the parameter
    • sanitizeFilename

      public String sanitizeFilename(String filename)
      Sanitize filename by removing path. e.g. ../../sun.gif becomes sun.gif
      Parameters:
      filename - The filename to be sanitized
      Returns:
      The sanitized filename
    • isJsonMime

      public boolean isJsonMime(String mime)
      Check if the given MIME is a JSON MIME. JSON MIME examples: application/json application/json; charset=UTF8 APPLICATION/JSON application/vnd.company+json "* / *" is also default to JSON
      Parameters:
      mime - MIME (Multipurpose Internet Mail Extensions)
      Returns:
      True if the given MIME is JSON, false otherwise.
    • selectHeaderAccept

      public String selectHeaderAccept(String[] accepts)
      Select the Accept header's value from the given accepts array: if JSON exists in the given array, use it; otherwise use all of them (joining into a string)
      Parameters:
      accepts - The accepts array to select from
      Returns:
      The Accept header to use. If the given array is empty, null will be returned (not to set the Accept header explicitly).
    • selectHeaderContentType

      public String selectHeaderContentType(String[] contentTypes)
      Select the Content-Type header's value from the given array: if JSON exists in the given array, use it; otherwise use the first one of the array.
      Parameters:
      contentTypes - The Content-Type array to select from
      Returns:
      The Content-Type header to use. If the given array is empty, returns null. If it matches "any", JSON will be used.
    • escapeString

      public String escapeString(String str)
      Escape the given string to be used as URL query value.
      Parameters:
      str - String to be escaped
      Returns:
      Escaped string
    • deserialize

      public <T> T deserialize(okhttp3.Response response, Type returnType) throws ApiException
      Deserialize response body to Java object, according to the return type and the Content-Type response header.
      Type Parameters:
      T - Type
      Parameters:
      response - HTTP response
      returnType - The type of the Java object
      Returns:
      The deserialized Java object
      Throws:
      ApiException - If fail to deserialize response body, i.e. cannot read response body or the Content-Type of the response is not supported.
    • serialize

      public okhttp3.RequestBody serialize(Object obj, String contentType) throws ApiException
      Serialize the given Java object into request body according to the object's class and the request Content-Type.
      Parameters:
      obj - The Java object
      contentType - The request Content-Type
      Returns:
      The serialized request body
      Throws:
      ApiException - If fail to serialize the given object
    • downloadFileFromResponse

      public File downloadFileFromResponse(okhttp3.Response response) throws ApiException
      Download file from the given response.
      Parameters:
      response - An instance of the Response object
      Returns:
      Downloaded file
      Throws:
      ApiException - If fail to read file content from response and write to disk
    • prepareDownloadFile

      public File prepareDownloadFile(okhttp3.Response response) throws IOException
      Prepare file for download
      Parameters:
      response - An instance of the Response object
      Returns:
      Prepared file for the download
      Throws:
      IOException - If fail to prepare file for download
    • execute

      public <T> ApiResponse<T> execute(okhttp3.Call call) throws ApiException
      Type Parameters:
      T - Type
      Parameters:
      call - An instance of the Call object
      Returns:
      ApiResponse<T>
      Throws:
      ApiException - If fail to execute the call
    • execute

      public <T> ApiResponse<T> execute(okhttp3.Call call, Type returnType) throws ApiException
      Execute HTTP call and deserialize the HTTP response body into the given return type.
      Type Parameters:
      T - The return type corresponding to (same with) returnType
      Parameters:
      call - Call
      returnType - The return type used to deserialize HTTP response body
      Returns:
      ApiResponse object containing response status, headers and data, which is a Java object deserialized from response body and would be null when returnType is null.
      Throws:
      ApiException - If fail to execute the call
    • executeAsync

      public <T> void executeAsync(okhttp3.Call call, ApiCallback<T> callback)
      Type Parameters:
      T - Type
      Parameters:
      call - An instance of the Call object
      callback - ApiCallback<T>
    • executeAsync

      public <T> void executeAsync(okhttp3.Call call, Type returnType, ApiCallback<T> callback)
      Execute HTTP call asynchronously.
      Type Parameters:
      T - Type
      Parameters:
      call - The callback to be executed when the API call finishes
      returnType - Return type
      callback - ApiCallback
      See Also:
    • handleResponse

      public <T> T handleResponse(okhttp3.Response response, Type returnType) throws ApiException
      Handle the given response, return the deserialized object when the response is successful.
      Type Parameters:
      T - Type
      Parameters:
      response - Response
      returnType - Return type
      Returns:
      Type
      Throws:
      ApiException - If the response has an unsuccessful status code or fail to deserialize the response body
    • buildCall

      public okhttp3.Call buildCall(String baseUrl, String path, String method, List<Pair> queryParams, List<Pair> collectionQueryParams, Object body, Map<String,String> headerParams, Map<String,String> cookieParams, Map<String,Object> formParams, String[] authNames, ApiCallback callback) throws ApiException
      Build HTTP call with the given options.
      Parameters:
      baseUrl - The base URL
      path - The sub-path of the HTTP URL
      method - The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"
      queryParams - The query parameters
      collectionQueryParams - The collection query parameters
      body - The request body object
      headerParams - The header parameters
      cookieParams - The cookie parameters
      formParams - The form parameters
      authNames - The authentications to apply
      callback - Callback for upload/download progress
      Returns:
      The HTTP call
      Throws:
      ApiException - If fail to serialize the request body object
    • buildRequest

      public okhttp3.Request buildRequest(String baseUrl, String path, String method, List<Pair> queryParams, List<Pair> collectionQueryParams, Object body, Map<String,String> headerParams, Map<String,String> cookieParams, Map<String,Object> formParams, String[] authNames, ApiCallback callback) throws ApiException
      Build an HTTP request with the given options.
      Parameters:
      baseUrl - The base URL
      path - The sub-path of the HTTP URL
      method - The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"
      queryParams - The query parameters
      collectionQueryParams - The collection query parameters
      body - The request body object
      headerParams - The header parameters
      cookieParams - The cookie parameters
      formParams - The form parameters
      authNames - The authentications to apply
      callback - Callback for upload/download progress
      Returns:
      The HTTP request
      Throws:
      ApiException - If fail to serialize the request body object
    • buildUrl

      public String buildUrl(String baseUrl, String path, List<Pair> queryParams, List<Pair> collectionQueryParams)
      Build full URL by concatenating base path, the given sub path and query parameters.
      Parameters:
      baseUrl - The base URL
      path - The sub path
      queryParams - The query parameters
      collectionQueryParams - The collection query parameters
      Returns:
      The full URL
    • processHeaderParams

      public void processHeaderParams(Map<String,String> headerParams, okhttp3.Request.Builder reqBuilder)
      Set header parameters to the request builder, including default headers.
      Parameters:
      headerParams - Header parameters in the form of Map
      reqBuilder - Request.Builder
    • processCookieParams

      public void processCookieParams(Map<String,String> cookieParams, okhttp3.Request.Builder reqBuilder)
      Set cookie parameters to the request builder, including default cookies.
      Parameters:
      cookieParams - Cookie parameters in the form of Map
      reqBuilder - Request.Builder
    • updateParamsForAuth

      public void updateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String,String> headerParams, Map<String,String> cookieParams, String payload, String method, URI uri) throws ApiException
      Update query and header parameters based on authentication settings.
      Parameters:
      authNames - The authentications to apply
      queryParams - List of query parameters
      headerParams - Map of header parameters
      cookieParams - Map of cookie parameters
      payload - HTTP request body
      method - HTTP method
      uri - URI
      Throws:
      ApiException - If fails to update the parameters
    • buildRequestBodyFormEncoding

      public okhttp3.RequestBody buildRequestBodyFormEncoding(Map<String,Object> formParams)
      Build a form-encoding request body with the given form parameters.
      Parameters:
      formParams - Form parameters in the form of Map
      Returns:
      RequestBody
    • buildRequestBodyMultipart

      public okhttp3.RequestBody buildRequestBodyMultipart(Map<String,Object> formParams)
      Build a multipart (file uploading) request body with the given form parameters, which could contain text fields and file fields.
      Parameters:
      formParams - Form parameters in the form of Map
      Returns:
      RequestBody
    • guessContentTypeFromFile

      public String guessContentTypeFromFile(File file)
      Guess Content-Type header from the given file (defaults to "application/octet-stream").
      Parameters:
      file - The given file
      Returns:
      The guessed Content-Type