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 login
    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.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    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
    void
    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
    authenticate(String sid, String sessionSecret)
    Authenticate with given sid and session secret
    javax.ws.rs.client.WebTarget
    Provides access to the WebTarget that is used as the base for all commands to the server
    Get the cookie handler
    List<org.apache.http.cookie.Cookie>
    Get the cookies currently stored in the client
    javax.ws.rs.client.Client
    Get the underlying Jersey Client, used to define filters and configure advanced settings
    Get the ID of the active session, as generated during login
    void
    login(String username, String password)
    Logs the specified user into the system using the password given
    void
    Logs out the current user
    void
    Set the ID of the session that should be used.
    void
    Performs login on an SSO system - before this works, necessary filters have to be defined

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • 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 Client
      baseUrl - URL pointing to the base of the REST service provider (Example: http://[hostname]/CNPortletapp/rest/)
  • Method Details

    • login

      public void login(String username, String password) throws RestException
      Logs the specified user into the system using the password given
      Parameters:
      username - user name
      password - 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 - SID
      sessionSecret - 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
    • getCookieHandler

      public CookieHandler getCookieHandler()
      Get the cookie handler
      Returns:
      cookie handler