Package com.circleci.client.v2
Class ApiClient
- java.lang.Object
-
- com.circleci.client.v2.ApiClient
-
public class ApiClient extends Object
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Authentication>authenticationsprotected StringbasePathprotected intconnectionTimeoutprotected DateFormatdateFormatprotected booleandebuggingprotected Map<String,String>defaultHeaderMapprotected javax.ws.rs.client.ClienthttpClientprotected JSONjsonprotected StringtempFolderPath
-
Constructor Summary
Constructors Constructor Description ApiClient()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ApiClientaddDefaultHeader(String key, String value)Add a default header.protected javax.ws.rs.client.ClientbuildHttpClient(boolean debugging)Build the Client used to make HTTP requests.protected Map<String,List<String>>buildResponseHeaders(javax.ws.rs.core.Response response)<T> Tdeserialize(javax.ws.rs.core.Response response, javax.ws.rs.core.GenericType<T> returnType)Deserialize response body to Java object according to the Content-Type.FiledownloadFileFromResponse(javax.ws.rs.core.Response response)Download file from the given response.StringescapeString(String str)Escape the given string to be used as URL query value.StringformatDate(Date date)Format the given Date object into string.AuthenticationgetAuthentication(String authName)Get authentication for the given name.Map<String,Authentication>getAuthentications()Get authentications (key: authentication name, value: authentication).StringgetBasePath()intgetConnectTimeout()Connect timeout (in milliseconds).DateFormatgetDateFormat()Get the date format used to parse/format date parameters.javax.ws.rs.client.ClientgetHttpClient()JSONgetJSON()Gets the JSON instance to do JSON serialization and deserialization.intgetReadTimeout()read timeout (in milliseconds).StringgetTempFolderPath()The path of temporary folder used to store downloaded files from endpoints with file response.<T> ApiResponse<T>invokeAPI(String path, String method, List<Pair> queryParams, Object body, Map<String,String> headerParams, Map<String,Object> formParams, String accept, String contentType, String[] authNames, javax.ws.rs.core.GenericType<T> returnType)Invoke API by sending HTTP request with the given options.booleanisDebugging()Check that whether debugging is enabled for this API client.booleanisJsonMime(String mime)Check if the given MIME is a JSON MIME.List<Pair>parameterToPairs(String collectionFormat, String name, Object value)StringparameterToString(Object param)Format the given parameter object into string.DateparseDate(String str)Parse the given string into Date object.protected voidperformAdditionalClientConfiguration(org.glassfish.jersey.client.ClientConfig clientConfig)FileprepareDownloadFile(javax.ws.rs.core.Response response)StringselectHeaderAccept(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)StringselectHeaderContentType(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.javax.ws.rs.client.Entity<?>serialize(Object obj, Map<String,Object> formParams, String contentType)Serialize the given Java object into string entity according the given Content-Type (only JSON is supported for now).voidsetApiKey(String apiKey)Helper method to set API key value for the first API key authentication.voidsetApiKeyPrefix(String apiKeyPrefix)Helper method to set API key prefix for the first API key authentication.ApiClientsetBasePath(String basePath)voidsetBearerToken(String bearerToken)Helper method to set bearer token for the first Bearer authentication.ApiClientsetConnectTimeout(int connectionTimeout)Set the connect timeout (in milliseconds).ApiClientsetDateFormat(DateFormat dateFormat)Set the date format used to parse/format date parameters.ApiClientsetDebugging(boolean debugging)Enable/disable debugging for this API client.ApiClientsetHttpClient(javax.ws.rs.client.Client httpClient)voidsetPassword(String password)Helper method to set password for the first HTTP basic authentication.ApiClientsetReadTimeout(int readTimeout)Set the read timeout (in milliseconds).ApiClientsetTempFolderPath(String tempFolderPath)Set temp folder pathApiClientsetUserAgent(String userAgent)Set the User-Agent header's value (by adding to the default header map).voidsetUsername(String username)Helper method to set username for the first HTTP basic authentication.protected voidupdateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String,String> headerParams)Update query and header parameters based on authentication settings.
-
-
-
Field Detail
-
basePath
protected String basePath
-
debugging
protected boolean debugging
-
connectionTimeout
protected int connectionTimeout
-
httpClient
protected javax.ws.rs.client.Client httpClient
-
json
protected JSON json
-
tempFolderPath
protected String tempFolderPath
-
authentications
protected Map<String,Authentication> authentications
-
dateFormat
protected DateFormat dateFormat
-
-
Method Detail
-
getJSON
public JSON getJSON()
Gets the JSON instance to do JSON serialization and deserialization.- Returns:
- JSON
-
getHttpClient
public javax.ws.rs.client.Client getHttpClient()
-
setHttpClient
public ApiClient setHttpClient(javax.ws.rs.client.Client httpClient)
-
getBasePath
public String getBasePath()
-
getAuthentications
public Map<String,Authentication> getAuthentications()
Get authentications (key: authentication name, value: authentication).- Returns:
- Map of authentication object
-
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
-
setBearerToken
public void setBearerToken(String bearerToken)
Helper method to set bearer token for the first Bearer authentication.- Parameters:
bearerToken- Bearer token
-
setUserAgent
public ApiClient setUserAgent(String userAgent)
Set the User-Agent header's value (by adding to the default header map).- Parameters:
userAgent- Http user agent- Returns:
- API client
-
addDefaultHeader
public ApiClient addDefaultHeader(String key, String value)
Add a default header.- Parameters:
key- The header's keyvalue- The header's value- Returns:
- API client
-
isDebugging
public boolean isDebugging()
Check that whether debugging is enabled for this API client.- Returns:
- True if debugging is switched on
-
setDebugging
public ApiClient setDebugging(boolean debugging)
Enable/disable debugging for this API client.- Parameters:
debugging- To enable (true) or disable (false) debugging- Returns:
- API client
-
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 tempopary folder.- Returns:
- Temp folder path
-
setTempFolderPath
public ApiClient setTempFolderPath(String tempFolderPath)
Set temp folder path- Parameters:
tempFolderPath- Temp folder path- Returns:
- API client
-
getConnectTimeout
public int getConnectTimeout()
Connect timeout (in milliseconds).- Returns:
- Connection timeout
-
setConnectTimeout
public ApiClient setConnectTimeout(int connectionTimeout)
Set 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()
read timeout (in milliseconds).- Returns:
- Read timeout
-
setReadTimeout
public ApiClient setReadTimeout(int readTimeout)
Set 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
-
getDateFormat
public DateFormat getDateFormat()
Get the date format used to parse/format date parameters.- Returns:
- Date format
-
setDateFormat
public ApiClient setDateFormat(DateFormat dateFormat)
Set the date format used to parse/format date parameters.- Parameters:
dateFormat- Date format- Returns:
- API client
-
parseDate
public Date parseDate(String str)
Parse the given string into Date object.- Parameters:
str- String- Returns:
- Date
-
formatDate
public String formatDate(Date date)
Format the given Date object into string.- Parameters:
date- Date- Returns:
- Date in string format
-
parameterToString
public String parameterToString(Object param)
Format the given parameter object into string.- Parameters:
param- Object- Returns:
- Object in string format
-
parameterToPairs
public List<Pair> parameterToPairs(String collectionFormat, String name, Object value)
-
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- Returns:
- True if the MIME type is JSON
-
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, JSON will be used.
-
escapeString
public String escapeString(String str)
Escape the given string to be used as URL query value.- Parameters:
str- String- Returns:
- Escaped string
-
serialize
public javax.ws.rs.client.Entity<?> serialize(Object obj, Map<String,Object> formParams, String contentType) throws ApiException
Serialize the given Java object into string entity according the given Content-Type (only JSON is supported for now).- Parameters:
obj- ObjectformParams- Form parameterscontentType- Context type- Returns:
- Entity
- Throws:
ApiException- API exception
-
deserialize
public <T> T deserialize(javax.ws.rs.core.Response response, javax.ws.rs.core.GenericType<T> returnType) throws ApiExceptionDeserialize response body to Java object according to the Content-Type.- Type Parameters:
T- Type- Parameters:
response- ResponsereturnType- Return type- Returns:
- Deserialize object
- Throws:
ApiException- API exception
-
downloadFileFromResponse
public File downloadFileFromResponse(javax.ws.rs.core.Response response) throws ApiException
Download file from the given response.- Parameters:
response- Response- Returns:
- File
- Throws:
ApiException- If fail to read file content from response and write to disk
-
prepareDownloadFile
public File prepareDownloadFile(javax.ws.rs.core.Response response) throws IOException
- Throws:
IOException
-
invokeAPI
public <T> ApiResponse<T> invokeAPI(String path, String method, List<Pair> queryParams, Object body, Map<String,String> headerParams, Map<String,Object> formParams, String accept, String contentType, String[] authNames, javax.ws.rs.core.GenericType<T> returnType) throws ApiException
Invoke API by sending HTTP request with the given options.- Type Parameters:
T- Type- Parameters:
path- The sub-path of the HTTP URLmethod- The request method, one of "GET", "POST", "PUT", "HEAD" and "DELETE"queryParams- The query parametersbody- The request body objectheaderParams- The header parametersformParams- The form parametersaccept- The request's Accept headercontentType- The request's Content-Type headerauthNames- The authentications to applyreturnType- The return type into which to deserialize the response- Returns:
- The response body in type of string
- Throws:
ApiException- API exception
-
buildHttpClient
protected javax.ws.rs.client.Client buildHttpClient(boolean debugging)
Build the Client used to make HTTP requests.- Parameters:
debugging- Debug setting- Returns:
- Client
-
performAdditionalClientConfiguration
protected void performAdditionalClientConfiguration(org.glassfish.jersey.client.ClientConfig clientConfig)
-
buildResponseHeaders
protected Map<String,List<String>> buildResponseHeaders(javax.ws.rs.core.Response response)
-
updateParamsForAuth
protected void updateParamsForAuth(String[] authNames, List<Pair> queryParams, Map<String,String> headerParams)
Update query and header parameters based on authentication settings.- Parameters:
authNames- The authentications to applyqueryParams- List of query parametersheaderParams- Map of header parameters
-
-