Package org.openapitools.client
Class ApiClient
- java.lang.Object
-
- org.openapitools.client.ApiClient
-
public class ApiClient extends Object
ApiClient class.
-
-
Field Summary
Fields Modifier and Type Field Description protected Integer
serverIndex
protected List<ServerConfiguration>
servers
protected Map<String,String>
serverVariables
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ApiClient
addDefaultCookie(String key, String value)
Add a default cookie.ApiClient
addDefaultHeader(String key, String value)
Add a default header.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)
Build HTTP call with the given options.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)
Build an HTTP request with the given options.okhttp3.RequestBody
buildRequestBodyFormEncoding(Map<String,Object> formParams)
Build a form-encoding request body with the given form parameters.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.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.String
collectionPathParameterToString(String collectionFormat, Collection value)
Formats the specified collection path parameter to a string value.<T> T
deserialize(okhttp3.Response response, Type returnType)
Deserialize response body to Java object, according to the return type and the Content-Type response header.File
downloadFileFromResponse(okhttp3.Response response)
Download file from the given response.String
escapeString(String str)
Escape the given string to be used as URL query value.<T> ApiResponse<T>
execute(okhttp3.Call call)
<T> ApiResponse<T>
execute(okhttp3.Call call, Type returnType)
Execute HTTP call and deserialize the HTTP response body into the given return type.<T> void
executeAsync(okhttp3.Call call, Type returnType, ApiCallback<T> callback)
Execute HTTP call asynchronously.<T> void
executeAsync(okhttp3.Call call, ApiCallback<T> callback)
Authentication
getAuthentication(String authName)
Get authentication for the given name.Map<String,Authentication>
getAuthentications()
Get authentications (key: authentication name, value: authentication).String
getBasePath()
Get base pathint
getConnectTimeout()
Get connection timeout (in milliseconds).DateFormat
getDateFormat()
Getter for the fielddateFormat
.okhttp3.OkHttpClient
getHttpClient()
Get HTTP clientJSON
getJSON()
Get JSONKeyManager[]
getKeyManagers()
Getter for the fieldkeyManagers
.int
getReadTimeout()
Get read timeout (in milliseconds).Integer
getServerIndex()
List<ServerConfiguration>
getServers()
Map<String,String>
getServerVariables()
InputStream
getSslCaCert()
Get SSL CA cert.String
getTempFolderPath()
The path of temporary folder used to store downloaded files from endpoints with file response.int
getWriteTimeout()
Get write timeout (in milliseconds).String
guessContentTypeFromFile(File file)
Guess Content-Type header from the given file (defaults to "application/octet-stream").<T> T
handleResponse(okhttp3.Response response, Type returnType)
Handle the given response, return the deserialized object when the response is successful.boolean
isDebugging()
Check that whether debugging is enabled for this API client.boolean
isJsonMime(String mime)
Check if the given MIME is a JSON MIME.boolean
isVerifyingSsl()
True if isVerifyingSsl flag is onList<Pair>
parameterToPair(String name, Object value)
Formats the specified query parameter to a list containing a singlePair
object.List<Pair>
parameterToPairs(String collectionFormat, String name, Collection value)
Formats the specified collection query parameters to a list ofPair
objects.String
parameterToString(Object param)
Format the given parameter object into string.File
prepareDownloadFile(okhttp3.Response response)
Prepare file for downloadvoid
processCookieParams(Map<String,String> cookieParams, okhttp3.Request.Builder reqBuilder)
Set cookie parameters to the request builder, including default cookies.void
processHeaderParams(Map<String,String> headerParams, okhttp3.Request.Builder reqBuilder)
Set header parameters to the request builder, including default headers.String
sanitizeFilename(String filename)
Sanitize filename by removing path.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)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.okhttp3.RequestBody
serialize(Object obj, String contentType)
Serialize the given Java object into request body according to the object's class and the request Content-Type.void
setAccessToken(String accessToken)
Helper method to set access token for the first OAuth2 authentication.void
setApiKey(String apiKey)
Helper method to set API key value for the first API key authentication.void
setApiKeyPrefix(String apiKeyPrefix)
Helper method to set API key prefix for the first API key authentication.void
setAWS4Configuration(String accessKey, String secretKey, String region, String service)
Helper method to set credentials for AWSV4 SignatureApiClient
setBasePath(String basePath)
Set base pathApiClient
setConnectTimeout(int connectionTimeout)
Sets the connect timeout (in milliseconds).ApiClient
setDateFormat(DateFormat dateFormat)
Setter for the fielddateFormat
.ApiClient
setDebugging(boolean debugging)
Enable/disable debugging for this API client.ApiClient
setHttpClient(okhttp3.OkHttpClient newHttpClient)
Set HTTP client, which must never be null.ApiClient
setJSON(JSON json)
Set JSONApiClient
setKeyManagers(KeyManager[] managers)
Configure client keys to use for authorization in an SSL session.ApiClient
setLenientOnJson(boolean lenientOnJson)
Set LenientOnJson.ApiClient
setLocalDateFormat(DateTimeFormatter dateFormat)
Set LocalDateFormat.ApiClient
setOffsetDateTimeFormat(DateTimeFormatter dateFormat)
Set OffsetDateTimeFormat.void
setPassword(String password)
Helper method to set password for the first HTTP basic authentication.ApiClient
setReadTimeout(int readTimeout)
Sets the read timeout (in milliseconds).ApiClient
setServerIndex(Integer serverIndex)
ApiClient
setServers(List<ServerConfiguration> servers)
ApiClient
setServerVariables(Map<String,String> serverVariables)
ApiClient
setSqlDateFormat(DateFormat dateFormat)
Set SqlDateFormat.ApiClient
setSslCaCert(InputStream sslCaCert)
Configure the CA certificate to be trusted when making https requests.ApiClient
setTempFolderPath(String tempFolderPath)
Set the temporary folder path (for downloading files)ApiClient
setUserAgent(String userAgent)
Set the User-Agent header's value (by adding to the default header map).void
setUsername(String username)
Helper method to set username for the first HTTP basic authentication.ApiClient
setVerifyingSsl(boolean verifyingSsl)
Configure whether to verify certificate and hostname when making https requests.ApiClient
setWriteTimeout(int writeTimeout)
Sets the write timeout (in milliseconds).void
updateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String,String> headerParams, Map<String,String> cookieParams, String payload, String method, URI uri)
Update query and header parameters based on authentication settings.
-
-
-
Method Detail
-
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 http://localhost- Returns:
- An instance of OkHttpClient
-
getServers
public List<ServerConfiguration> getServers()
-
setServers
public ApiClient setServers(List<ServerConfiguration> servers)
-
getServerIndex
public Integer getServerIndex()
-
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
- aDateFormat
object- Returns:
- a
ApiClient
object
-
setSqlDateFormat
public ApiClient setSqlDateFormat(DateFormat dateFormat)
Set SqlDateFormat.
- Parameters:
dateFormat
- aDateFormat
object- Returns:
- a
ApiClient
object
-
setOffsetDateTimeFormat
public ApiClient setOffsetDateTimeFormat(DateTimeFormatter dateFormat)
Set OffsetDateTimeFormat.
- Parameters:
dateFormat
- aDateTimeFormatter
object- Returns:
- a
ApiClient
object
-
setLocalDateFormat
public ApiClient setLocalDateFormat(DateTimeFormatter dateFormat)
Set LocalDateFormat.
- Parameters:
dateFormat
- aDateTimeFormatter
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 KeysecretKey
- Secret Keyregion
- Regionservice
- 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 keyvalue
- The header's value- Returns:
- ApiClient
-
addDefaultCookie
public ApiClient addDefaultCookie(String key, String value)
Add a default cookie.- Parameters:
key
- The cookie's keyvalue
- 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 isnull
, i.e. using the system's default temporary folder.- Returns:
- Temporary folder path
- See Also:
- createTempFile
-
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 andInteger.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 andInteger.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 andInteger.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 singlePair
object. Note thatvalue
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 ofPair
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 responsereturnType
- 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 objectcontentType
- 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:
returnType
- The return type used to deserialize HTTP response bodycall
- Call- 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 objectcallback
- 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 finishesreturnType
- Return typecallback
- ApiCallback- See Also:
execute(Call, Type)
-
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
- ResponsereturnType
- 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 URLpath
- The sub-path of the HTTP URLmethod
- The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"queryParams
- The query parameterscollectionQueryParams
- The collection query parametersbody
- The request body objectheaderParams
- The header parameterscookieParams
- The cookie parametersformParams
- The form parametersauthNames
- The authentications to applycallback
- 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 URLpath
- The sub-path of the HTTP URLmethod
- The request method, one of "GET", "HEAD", "OPTIONS", "POST", "PUT", "PATCH" and "DELETE"queryParams
- The query parameterscollectionQueryParams
- The collection query parametersbody
- The request body objectheaderParams
- The header parameterscookieParams
- The cookie parametersformParams
- The form parametersauthNames
- The authentications to applycallback
- 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 URLpath
- The sub pathqueryParams
- The query parameterscollectionQueryParams
- 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 MapreqBuilder
- 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 MapreqBuilder
- 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 applyqueryParams
- List of query parametersheaderParams
- Map of header parameterscookieParams
- Map of cookie parameterspayload
- HTTP request bodymethod
- HTTP methoduri
- 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
-
-