Class VaultRequest<T extends VaultRequest<T>>

java.lang.Object
com.veeva.vault.vapil.api.request.VaultRequest<T>
Direct Known Subclasses:
AuthenticationRequest, BinderRequest, BinderRoleRequest, BinderTemplateRequest, BulkActiveWorkflowActionRequest, BulkTranslationRequest, ConfigurationMigrationRequest, CustomPagesRequest, DirectDataRequest, DocumentAnnotationRequest, DocumentAttachmentRequest, DocumentEventRequest, DocumentLifecycleRequest, DocumentRelationshipRequest, DocumentRenditionRequest, DocumentRequest, DocumentRoleRequest, DocumentSignatureRequest, DocumentTemplateRequest, DocumentWorkflowRequest, DomainRequest, EDLRequest, FileStagingRequest, GroupRequest, JobRequest, LoaderRequest, LogRequest, MetaDataRequest, ObjectLifecycleWorkflowRequest, ObjectRecordAttachmentFieldRequest, ObjectRecordAttachmentRequest, ObjectRecordRequest, PicklistRequest, QueryRequest, SandboxRequest, SCIMRequest, SDKRequest, SecurityPolicyRequest, UserRequest

public abstract class VaultRequest<T extends VaultRequest<T>> extends Object
Class for performing HTTP requests to the Vault API. This class is extended by the specific request class that maps to a Vault API endpoint. It cannot be instantiated directly.
  • Field Details

    • HTTP_HEADER_AUTHORIZATION

      public static final String HTTP_HEADER_AUTHORIZATION
      HTTP header value for the Vault session Value = "Authorization"
      See Also:
    • HTTP_HEADER_VAULT_CLIENT_ID

      public static final String HTTP_HEADER_VAULT_CLIENT_ID
      See Also:
    • HTTP_HEADER_REFERENCE_ID

      public static final String HTTP_HEADER_REFERENCE_ID
      See Also:
    • referenceId

      protected String referenceId
    • requestClientId

      protected String requestClientId
    • vaultClient

      protected VaultClient vaultClient
      The Vault client, containing domain, authentication, and session information. All requests are initiated via the VaultClient.
  • Constructor Details

    • VaultRequest

      protected VaultRequest()
      Default constructor for the abstract VaultRequest class. Extended/Instantiated via the sub-class.
  • Method Details

    • send

      protected <T> T send(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, Class<T> responseObjectClass)
      Perform an HTTP request after setting standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.
      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • send

      protected <T> T send(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, com.fasterxml.jackson.databind.ObjectMapper objectMapper, Class<T> responseObjectClass)
      Perform an HTTP request after setting standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.

      A passed object mapper allows flexibility for the calling method to set deserialization rules when processing the response. User this method to have greater control of the JSON deserialization. For example, set a deserialization rule to treat a single JSON object as a JSON array.

      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      objectMapper - Deserialization object mapper to POJO
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • sendToFile

      protected <T> T sendToFile(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, String outputFilePath, Class<T> responseObjectClass)
      Perform an HTTP request that creates a file. The request will contain standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.
      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      outputFilePath - file path for the output file
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • sendToFile

      protected <T> T sendToFile(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, com.fasterxml.jackson.databind.ObjectMapper objectMapper, String outputFilePath, Class<T> responseObjectClass)
      Perform an HTTP request that creates a file. The request will contain standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.

      A passed object mapper allows flexibility for the calling method to set deserialization rules when processing the response. User this method to have greater control of the JSON deserialization. For example, set a deserialization rule to treat a single JSON object as a JSON array.

      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      objectMapper - Deserialization object mapper to POJO
      outputFilePath - file path for the output file
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • sendReturnBinary

      protected <T> T sendReturnBinary(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, com.fasterxml.jackson.databind.ObjectMapper objectMapper, Class<T> responseObjectClass)
      Perform an HTTP request that creates a file. The request will contain standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.

      A passed object mapper allows flexibility for the calling method to set deserialization rules when processing the response. User this method to have greater control of the JSON deserialization. For example, set a deserialization rule to treat a single JSON object as a JSON array.

      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      objectMapper - Deserialization object mapper to POJO
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • sendReturnBinary

      protected <T> T sendReturnBinary(HttpRequestConnector.HttpMethod method, HttpRequestConnector request, Class<T> responseObjectClass)
      Perform an HTTP request that creates a file. The request will contain standard Vault information such as the session id. This method is a wrapper to the HttpRequestConnector class to provide central area for setting information and processing the response.
      Type Parameters:
      T - The object
      Parameters:
      method - HTTP Method (GET, POST, PUT, DELETE)
      request - Fully formed HTTP request
      responseObjectClass - POJO class representing the deserialized JSON response
      Returns:
      POJO modeled response based on a response string
    • getBaseObjectMapper

      public com.fasterxml.jackson.databind.ObjectMapper getBaseObjectMapper()
      Base object mapper for common mapping rules of Vault requests. Creates an object mapper with common properties. Allows additional properties to be enabled/disabled before sending the HTTP request.
      Returns:
      Base object mapper
    • setVaultClient

      public void setVaultClient(VaultClient vaultClient)
      Set the VaultClient for Vault domain and connection information
      Parameters:
      vaultClient - The VaultClient
    • setHeaderReferenceId

      public T setHeaderReferenceId(String referenceId)
      Abstract method to set the reference id header for the Vault API request. This method is implemented for all Request classes. When set in the request, the Reference ID is returned in the response headers of the returned Response class.
      Parameters:
      referenceId - The reference id
      Returns:
      The request
      Vault API Help Link:
      https://developer.veevavault.com/docs/#reference-id
      Example Request:
       VaultResponse response = vaultClient.newRequest(DomainRequest.class)
                      .setHeaderReferenceId("test-reference-id")
                      .retrieveDomains();
       
      Example Response:
       System.out.println("Reference ID: " + response.getHeaderReferenceId());
       
    • setHeaderClientId

      public T setHeaderClientId(String clientId)
      Abstract method to set a Client ID header for individual API requests. This method is implemented for all Request classes. When set on a request, it overrides the client ID set on the Vault Client.
      Parameters:
      clientId - The client id
      Returns:
      The request
      Vault API Help Link:
      https://developer.veevavault.com/docs/#client-id
      Example Request:
       VaultResponse response = vaultClient.newRequest(DomainRequest.class)
                      .setHeaderClientId("test-request-client-id")
                      .retrieveDomains();