io.vertx.ext.web.api.validation

## Interface HTTPRequestValidationHandler

- All Superinterfaces:
    Handler<RoutingContext>, ValidationHandler

      public interface HTTPRequestValidationHandler
      extends ValidationHandler

  An interface for add HTTP Request validation. This class can validate parameters inside query, path, headers an body (watch below)
  You can assign multiple body type at the same time(for example a JSON schema together with a XML schema). This interface support:
  - application/x-www-form-urlencoded
  - multipart/form-data
  - application/xml
  - application/json
  Also you can add a form parameter for validation without care about content type of your request. For form parameters this interface support both "multipart/form-data" and "application/x-www-form-urlencoded"
  This interface allow extra parameters in the request, so it doesn't care if in a request there's a parameter without a specified validation rule
  If a parameter is flagged as an array, it will be validated also if the size of array is 1 element
  Author:
    Francesco Guardiani @slinkydeveloper

- - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `HTTPRequestValidationHandler` | `addCustomValidatorFunction(CustomValidator customValidator)` Add a custom validator.
    `HTTPRequestValidationHandler` | `addExpectedContentType(String contentType)` Add an expected content type of request.
    `HTTPRequestValidationHandler` | `addFormParam(String parameterName, ParameterType type, boolean required)` Add a single parameter inside a form with included parameter types
    `HTTPRequestValidationHandler` | `addFormParamsArray(String parameterName, ParameterType type, boolean required)` Add a form parameters array with included parameter types
    `HTTPRequestValidationHandler` | `addFormParamsArrayWithPattern(String parameterName, String pattern, boolean required)` Add a form parameters array with a custom pattern
    `HTTPRequestValidationHandler` | `addFormParamWithCustomTypeValidator(String parameterName, ParameterTypeValidator validator, boolean required, boolean allowEmptyValue)` Add a form parameter with a custom type validator.
    `HTTPRequestValidationHandler` | `addFormParamWithPattern(String parameterName, String pattern, boolean required)` Add a single parameter inside a form with a custom pattern
    `HTTPRequestValidationHandler` | `addHeaderParam(String headerName, ParameterType type, boolean required)` Add a header parameter with included parameter types
    `HTTPRequestValidationHandler` | `addHeaderParamWithCustomTypeValidator(String headerName, ParameterTypeValidator validator, boolean required, boolean allowEmptyValue)` Add a header parameter with a custom type validator.
    `HTTPRequestValidationHandler` | `addHeaderParamWithPattern(String headerName, String pattern, boolean required)` Add a header parameter with a custom pattern
    `HTTPRequestValidationHandler` | `addJsonBodySchema(String jsonSchema)` Add a json schema for body with Content-Type "application/json"
    `HTTPRequestValidationHandler` | `addMultipartRequiredFile(String filename, String contentType)` Add an expected filename inside multipart request.
    `HTTPRequestValidationHandler` | `addPathParam(String parameterName, ParameterType type)` Add a path parameter with included parameter types.
    `HTTPRequestValidationHandler` | `addPathParamWithCustomTypeValidator(String parameterName, ParameterTypeValidator validator, boolean allowEmptyValue)` Add a path parameter with a custom type validator.
    `HTTPRequestValidationHandler` | `addPathParamWithPattern(String parameterName, String pattern)` Add a path parameter with a custom pattern.
    `HTTPRequestValidationHandler` | `addQueryParam(String parameterName, ParameterType type, boolean required)` Add a query parameter with included parameter types
    `HTTPRequestValidationHandler` | `addQueryParamsArray(String arrayName, ParameterType type, boolean required)` Add a query parameters array with included parameter types
    `HTTPRequestValidationHandler` | `addQueryParamsArrayWithPattern(String arrayName, String pattern, boolean required)` Add a query parameters array with a custom pattern
    `HTTPRequestValidationHandler` | `addQueryParamWithCustomTypeValidator(String parameterName, ParameterTypeValidator validator, boolean required, boolean allowEmptyValue)` Add a query parameter with a custom type validator.
    `HTTPRequestValidationHandler` | `addQueryParamWithPattern(String parameterName, String pattern, boolean required)` Add a query parameter with a custom pattern
    `HTTPRequestValidationHandler` | `addXMLBodySchema(String xmlSchema)` Add a xml schema for body with Content-Type "application/xml"
    `static HTTPRequestValidationHandler` | `create()` Factory method to create an HTTPRequestValidationHandler

    - ### Methods inherited from interface io.vertx.core.Handler

      `handle`

- - ### Method Detail

    - #### create

          static HTTPRequestValidationHandler create()

      Factory method to create an HTTPRequestValidationHandler
      Returns:
        new HTTPRequestValidationHandler

    - #### addPathParam

          HTTPRequestValidationHandler addPathParam(String parameterName,
                                                    ParameterType type)

      Add a path parameter with included parameter types. All path params are required
      Parameters:
        `parameterName` - expected name of parameter inside the path
        `type` - expected type of parameter
      Returns:
        this handler

    - #### addPathParamWithPattern

          HTTPRequestValidationHandler addPathParamWithPattern(String parameterName,
                                                               String pattern)

      Add a path parameter with a custom pattern. All path params are required
      Parameters:
        `parameterName` - expected name of parameter inside the path
        `pattern` - regular expression for validation
      Returns:
        this handler

    - #### addPathParamWithCustomTypeValidator

          HTTPRequestValidationHandler addPathParamWithCustomTypeValidator(String parameterName,
                                                                           ParameterTypeValidator validator,
                                                                           boolean allowEmptyValue)

      Add a path parameter with a custom type validator. All path params are required. For more informations about how to construct built-in or custom type validator, check out `ParameterTypeValidator`
      Parameters:
        `parameterName` - expected name of parameter inside the path
        `validator` - type validator
        `allowEmptyValue` - true if parameter allowEmptyValue. For more informations about allowEmptyValue behaviour: `ParameterValidationRule.allowEmptyValue()`
      Returns:
        this handler

    - #### addQueryParam

          HTTPRequestValidationHandler addQueryParam(String parameterName,
                                                     ParameterType type,
                                                     boolean required)

      Add a query parameter with included parameter types
      Parameters:
        `parameterName` - expected name of parameter inside the query
        `type` - expected type of parameter
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addQueryParamWithPattern

          HTTPRequestValidationHandler addQueryParamWithPattern(String parameterName,
                                                                String pattern,
                                                                boolean required)

      Add a query parameter with a custom pattern
      Parameters:
        `parameterName` - expected name of parameter inside the query
        `pattern` - regular expression for validation
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addQueryParamsArray

          HTTPRequestValidationHandler addQueryParamsArray(String arrayName,
                                                           ParameterType type,
                                                           boolean required)

      Add a query parameters array with included parameter types
      Parameters:
        `arrayName` - expected name of array inside the query
        `type` - expected type of parameter
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addQueryParamsArrayWithPattern

          HTTPRequestValidationHandler addQueryParamsArrayWithPattern(String arrayName,
                                                                      String pattern,
                                                                      boolean required)

      Add a query parameters array with a custom pattern
      Parameters:
        `arrayName` - expected name of array inside the query
        `pattern` - regular expression for validation
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addQueryParamWithCustomTypeValidator

          HTTPRequestValidationHandler addQueryParamWithCustomTypeValidator(String parameterName,
                                                                            ParameterTypeValidator validator,
                                                                            boolean required,
                                                                            boolean allowEmptyValue)

      Add a query parameter with a custom type validator. For more informations about how to construct built-in or custom type validator, check out `ParameterTypeValidator`
      Parameters:
        `parameterName` - expected name of parameter inside the query
        `validator` - type validator
        `required` - true if parameter is required
        `allowEmptyValue` - true if parameter allowEmptyValue. For more informations about allowEmptyValue behaviour: `ParameterValidationRule.allowEmptyValue()`
      Returns:
        this handler

    - #### addHeaderParam

          HTTPRequestValidationHandler addHeaderParam(String headerName,
                                                      ParameterType type,
                                                      boolean required)

      Add a header parameter with included parameter types
      Parameters:
        `headerName` - expected header name
        `type` - expected type of parameter
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addHeaderParamWithPattern

          HTTPRequestValidationHandler addHeaderParamWithPattern(String headerName,
                                                                 String pattern,
                                                                 boolean required)

      Add a header parameter with a custom pattern
      Parameters:
        `headerName` - expected header name
        `pattern` - regular expression for validation
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addHeaderParamWithCustomTypeValidator

          HTTPRequestValidationHandler addHeaderParamWithCustomTypeValidator(String headerName,
                                                                             ParameterTypeValidator validator,
                                                                             boolean required,
                                                                             boolean allowEmptyValue)

      Add a header parameter with a custom type validator. For more informations about how to construct built-in or custom type validator, check out `ParameterTypeValidator`
      Parameters:
        `headerName` - expected header namery
        `validator` - type validator
        `required` - true if parameter is required
        `allowEmptyValue` - true if parameter allowEmptyValue. For more informations about allowEmptyValue behaviour: `ParameterValidationRule.allowEmptyValue()`
      Returns:
        this handler

    - #### addFormParam

          HTTPRequestValidationHandler addFormParam(String parameterName,
                                                    ParameterType type,
                                                    boolean required)

      Add a single parameter inside a form with included parameter types
      Parameters:
        `parameterName` - expected name of parameter inside the form
        `type` - expected type of parameter
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addFormParamWithPattern

          HTTPRequestValidationHandler addFormParamWithPattern(String parameterName,
                                                               String pattern,
                                                               boolean required)

      Add a single parameter inside a form with a custom pattern
      Parameters:
        `parameterName` - expected name of parameter inside the form
        `pattern` - regular expression for validation
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addFormParamsArray

          HTTPRequestValidationHandler addFormParamsArray(String parameterName,
                                                          ParameterType type,
                                                          boolean required)

      Add a form parameters array with included parameter types
      Parameters:
        `parameterName` - expected name of array of parameters inside the form
        `type` - expected type of array of parameters
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addFormParamsArrayWithPattern

          HTTPRequestValidationHandler addFormParamsArrayWithPattern(String parameterName,
                                                                     String pattern,
                                                                     boolean required)

      Add a form parameters array with a custom pattern
      Parameters:
        `parameterName` - expected name of array of parameters inside the form
        `pattern` - regular expression for validation
        `required` - true if parameter is required
      Returns:
        this handler

    - #### addFormParamWithCustomTypeValidator

          HTTPRequestValidationHandler addFormParamWithCustomTypeValidator(String parameterName,
                                                                           ParameterTypeValidator validator,
                                                                           boolean required,
                                                                           boolean allowEmptyValue)

      Add a form parameter with a custom type validator. For more informations about how to construct built-in or custom type validator, check out `ParameterTypeValidator`
      Parameters:
        `parameterName` - expected name of parameter inside the form
        `validator` - type validator
        `required` - true if parameter is required
        `allowEmptyValue` - true if parameter allowEmptyValue. For more informations about allowEmptyValue behaviour: `ParameterValidationRule.allowEmptyValue()`
      Returns:
        this handler

    - #### addCustomValidatorFunction

          HTTPRequestValidationHandler addCustomValidatorFunction(CustomValidator customValidator)

      Add a custom validator. For more informations about custom validator, see `CustomValidator`
      Parameters:
        `customValidator` -
      Returns:
        this handler

    - #### addJsonBodySchema

          HTTPRequestValidationHandler addJsonBodySchema(String jsonSchema)

      Add a json schema for body with Content-Type "application/json"
      Parameters:
        `jsonSchema` -
      Returns:
        this handler

    - #### addXMLBodySchema

          HTTPRequestValidationHandler addXMLBodySchema(String xmlSchema)

      Add a xml schema for body with Content-Type "application/xml"
      Parameters:
        `xmlSchema` -
      Returns:
        this handler

    - #### addMultipartRequiredFile

          HTTPRequestValidationHandler addMultipartRequiredFile(String filename,
                                                                String contentType)

      Add an expected filename inside multipart request.
      Parameters:
        `filename` - name of the file inside the form
        `contentType` - expected content type of file
      Returns:
        this handler

    - #### addExpectedContentType

          HTTPRequestValidationHandler addExpectedContentType(String contentType)

      Add an expected content type of request. It's not needed to add application/json, application/xml, multipart/form-data and application/x-www-form-urlencoded
      Parameters:
        `contentType` - expected content type of file
      Returns:
        this handler

Copyright © 2020 Eclipse. All rights reserved.