Class RestClient
- java.lang.Object
-
- com.gentics.contentnode.rest.client.RestClient
-
public class RestClient extends Object
This client provides wrappers, helper-methods and exception-handling to facilitate requests to the REST API. It is initialized with a URL pointing to the base-location providing the services. After a successful login, a WebTarget-object can be retrieved that is then used to assemble and send requests; response-objects are returned from the server, containing the requested data and further information in the case of an error.
The Rest API client builds upon an underlying Jersey-client: detailed information about the use of the WebTarget-object (base) to build requests can be found at http://jersey.java.net/ .
-
-
Constructor Summary
Constructors Constructor Description RestClient(String baseUrl)
Initializes the REST-API client with a given base-URL and sets the necessary cookies; prepares the client for a subsequent loginRestClient(java.util.function.Supplier<org.glassfish.jersey.client.JerseyClient> clientSupplier, String baseUrl)
Initialize the REST-API client with a Jersey Client supplied by the given clientSupplier and the base URL.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
assertMatchingVersion()
Checks if the version of the REST API on the server is the same that is used by the client; if there is a mismatch between the two versions, a RestException is thrownvoid
assertResponse(GenericResponse response)
Analyzes the response of a finished request and asserts that it was executed without errors; if a problem occurred during the request, a specialized RestException is thrownUser
authenticate(String sid, String sessionSecret)
Authenticate with given sid and session secretjavax.ws.rs.client.WebTarget
base()
Provides access to the WebTarget that is used as the base for all commands to the serverList<org.apache.http.cookie.Cookie>
getCookies()
Get the cookies currently stored in the clientjavax.ws.rs.client.Client
getJerseyClient()
Get the underlying Jersey Client, used to define filters and configure advanced settingsString
getSid()
Get the ID of the active session, as generated during loginvoid
login(String username, String password)
Logs the specified user into the system using the password givenvoid
logout()
Logs out the current uservoid
setSid(String sid)
Set the ID of the session that should be used.void
ssologin()
Performs login on an SSO system - before this works, necessary filters have to be defined
-
-
-
Constructor Detail
-
RestClient
public RestClient(String baseUrl)
Initializes the REST-API client with a given base-URL and sets the necessary cookies; prepares the client for a subsequent login- Parameters:
baseUrl
- An URL pointing to the base of the RESTful service provider (Example: http://[hostname]/CNPortletapp/rest/)
-
RestClient
public RestClient(java.util.function.Supplier<org.glassfish.jersey.client.JerseyClient> clientSupplier, String baseUrl)
Initialize the REST-API client with a Jersey Client supplied by the given clientSupplier and the base URL. The default Jersey Client is created like this:new RestClient(() -> { ClientConfig clientConfig = new ClientConfig().connectorProvider(new HttpUrlConnectorProvider()); return JerseyClientBuilder.createClient(clientConfig).register(JacksonFeature.class).register(MultiPartFeature.class); }, "http://myhost/CNPortletapp/rest");
- Parameters:
clientSupplier
- supplier for the Jersey ClientbaseUrl
- URL pointing to the base of the REST service provider (Example: http://[hostname]/CNPortletapp/rest/)
-
-
Method Detail
-
login
public void login(String username, String password) throws RestException
Logs the specified user into the system using the password given- Parameters:
username
- user namepassword
- password- Throws:
RestException
- If the login failed
-
ssologin
public void ssologin() throws RestException
Performs login on an SSO system - before this works, necessary filters have to be defined- Throws:
RestException
- If the login via SSO failed
-
logout
public void logout() throws RestException
Logs out the current user- Throws:
RestException
- If the logout failed
-
authenticate
public User authenticate(String sid, String sessionSecret) throws RestException
Authenticate with given sid and session secret- Parameters:
sid
- SIDsessionSecret
- session secret- Returns:
- user
- Throws:
RestException
- if authentication fails
-
assertResponse
public void assertResponse(GenericResponse response) throws RestException
Analyzes the response of a finished request and asserts that it was executed without errors; if a problem occurred during the request, a specialized RestException is thrown- Parameters:
response
- The response of the request that needs to be checked- Throws:
RestException
- Thrown if the request was not successful, and contains further information of the reason of failure
-
assertMatchingVersion
public void assertMatchingVersion() throws RestException
Checks if the version of the REST API on the server is the same that is used by the client; if there is a mismatch between the two versions, a RestException is thrown- Throws:
RestException
- Mismatch between the versions detected
-
base
public javax.ws.rs.client.WebTarget base() throws RestException
Provides access to the WebTarget that is used as the base for all commands to the server- Returns:
- The base resource, with the active SID already set
- Throws:
RestException
- If no valid SID is registered with the client
-
getSid
public String getSid()
Get the ID of the active session, as generated during login- Returns:
- session ID
-
setSid
public void setSid(String sid)
Set the ID of the session that should be used.
-
getJerseyClient
public javax.ws.rs.client.Client getJerseyClient()
Get the underlying Jersey Client, used to define filters and configure advanced settings- Returns:
- Jersey Client
-
getCookies
public List<org.apache.http.cookie.Cookie> getCookies() throws RestException
Get the cookies currently stored in the client- Returns:
- stored cookies
- Throws:
RestException
-
-