The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

DTA::CAB::Server::HTTP::Handler::Query - CAB HTTP Server: request handler: analyzer queries by CGI form

SYNOPSIS

##========================================================================
## PRELIMINARIES

use DTA::CAB::Server::HTTP::Handler::Query;

##========================================================================
## Methods: API

$h = $class_or_obj->new(%options);
$bool = $h->prepare($server);
$bool = $path->run($server, $localPath, $clientSocket, $httpRequest);

DESCRIPTION

DTA::CAB::Server::HTTP::Handler::Query is a request handler class for use with a DTA::CAB::Server::HTTP server which handles queries to selected server-supported analyzers submitted as CGI-style forms.

Globals

Variable: @ISA

DTA::CAB::Server::HTTP::Handler::Query inherits from DTA::CAB::Server::HTTP::Handler::CGI and implements the DTA::CAB::Server::HTTP::Handler API.

Variable: (%allowFormats);

Default allowed formats.

Methods: API

new
$h = $class_or_obj->new(%options);

%$h, %options:

(
 ##-- INHERITED from Handler::CGI
 #encoding => $defaultEncoding,  ##-- default encoding (UTF-8)
 allowGet => $bool,             ##-- allow GET requests? (default=1)
 allowPost => $bool,            ##-- allow POST requests? (default=1)
 pushMode => $mode,             ##-- push mode for addVars (default='keep')
 ##
 ##-- NEW in Handler::Query
 allowAnalyzers => \%analyzers, ##-- set of allowed analyzers ($allowedAnalyzerName=>$bool, ...) -- default=undef (all allowed)
 defaultAnalyzer => $aname,     ##-- default analyzer name (default = 'default')
 allowFormats => \%formats,     ##-- allowed formats: ($fmtAlias => $formatClassName, ...)
 defaultFormat => $class,       ##-- default format (default=$DTA::CAB::Format::CLASS_DEFAULT)
 forceClean => $bool,           ##-- always appends 'doAnalyzeClean'=>1 to options if true (default=false)
 returnRaw => $bool,            ##-- return all data as text/plain? (default=0)
 logVars => $level,             ##-- log-level for variable expansion (default=undef: none)
)
prepare
$bool = $h->prepare($server);

Sets $h->{allowAnalyzers} if not already defined.

run
$bool = $path->run($server, $localPath, $clientSocket, $httpRequest);

Process $httpRequest matching $localPath as CGI form-encoded query. The following CGI form parameters are supported:

(
 q    => $queryString,          ##-- raw, untokenized query string (preferred over 'qd')
 qd   => $queryData,            ##-- query data (formatted document)
 a    => $analyzerName,         ##-- analyzer key in %{$h->{allowAnalyzers}}, %{$srv->{as}}
 fmt  => $queryFormat,          ##-- query/response format (default=$h->{defaultFormat})
 #enc  => $queryEncoding,        ##-- query encoding (default='UTF-8')
 raw  => $bool,                 ##-- if true, data will be returned as text/plain (default=$h->{returnRaw})
 pretty => $level,              ##-- response format level
 ##
 $opt => $value,                ##-- other options are passed to analyzeDocument() (if $h->{allowUserOptions} is true)
)

AUTHOR

Bryan Jurish <moocow@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2011-2019 by Bryan Jurish

This package is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.24.1 or, at your option, any later version of Perl 5 you may have available.

SEE ALSO

DTA::CAB::Server::HTTP::Handler::QueryList(3pm), DTA::CAB::Server::HTTP::Handler::QueryList(3pm), DTA::CAB::Server::HTTP::Handler::CGI(3pm), DTA::CAB::Server::HTTP::Handler(3pm), DTA::CAB::Server::HTTP(3pm), DTA::CAB(3pm), perl(1), ...