The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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), ...