REST#

NAME#

Kernel::GenericInterface::Transport::HTTP::REST - GenericInterface network transport interface for HTTP::REST

PUBLIC INTERFACE#

new()#

usually, you want to create an instance of this by using Kernel::GenericInterface::Transport->new();

ProviderProcessRequest()#

Process an incoming web service request. This function has to read the request data from from the web server process.

Based on the request the Operation to be used is determined.

No out-bound communication is done here, except from continue requests.

In case of an error, the resulting http error code and message are remembered for the response.

my $Result = $TransportObject->ProviderProcessRequest();

$Result = {
    Success      => 1,                  # 0 or 1
    ErrorMessage => '',                 # in case of error
    Operation    => 'DesiredOperation', # name of the operation to perform
    Data         => {                   # data payload of request
        ...
    },
};

ProviderGenerateResponse()#

Generates response for an incoming web service request.

In case of an error, error code and message are taken from environment (previously set on request processing).

The HTTP code is set accordingly - 200 for (syntactically) correct messages - 4xx for http errors - 500 for content syntax errors

my $Result = $TransportObject->ProviderGenerateResponse(
    Success => 1,
    Data    => { # data payload for response, optional
        ...
    },
);

$Result = {
    Success      => 1,   # 0 or 1
    ErrorMessage => '',  # in case of error
};

RequesterPerformRequest()#

Prepare data payload as XML structure, generate an outgoing web service request, receive the response and return its data.

my $Result = $TransportObject->RequesterPerformRequest(
    Operation => 'remote_op', # name of remote operation to perform
    Data      => {            # data payload for request
        ...
    },
);

$Result = {
    Success      => 1,        # 0 or 1
    ErrorMessage => '',       # in case of error
    Data         => {
        ...
    },
};

_Output()#

Generate http response for provider and send it back to remote system. Environment variables are checked for potential error messages. Returns structure to be passed to provider.

my $Result = $TransportObject->_Output(
    HTTPCode => 200,           # http code to be returned, optional
    Content  => 'response',    # message content, XML response on normal execution
);

$Result = {
    Success      => 0,
    ErrorMessage => 'Message', # error message from given summary
};

_Error()#

Take error parameters from request processing. Error message is written to debugger, written to environment for response. Error is generated to be passed to provider/requester.

my $Result = $TransportObject->_Error(
    Summary   => 'Message',    # error message
    HTTPError => 500,          # http error code, optional
);

$Result = {
    Success      => 0,
    ErrorMessage => 'Message', # error message from given summary
};

_FlattenDataStructure()#

Returns a flattened hash/array of a given hash/array.

$TransportObject->_FlattenDataStructure(
    Data => \%OldHash,
    Flattened => \%NewHash,
);

my %OldHash = (
    Config => {
        A => 1,
        B => 2,
        C => 3,
        D => [
            2, 5, 6,
        ],
    },
    Config2 => 1
);

my %NewHash = (
    Config.A   => 1,
    Config.B   => 1,
    Config.C   => 1,
    Config.D.0 => 2,
    Config.D.1 => 5,
    Config.D.2 => 6,
    Config2    => 1,
);