---
name: "SRU::Server"
section: "3pm"
platform: "linux"
package: "libsru-perl"
version: "1.01-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SRU::Server"
---

# SRU::Server(3pm)

Respond to SRU requests via CGI::Application

## NAME

SRU::Server - Respond to SRU requests via CGI::Application

## SYNOPSIS

```
    package MySRU;
    use base qw( SRU::Server );
    sub explain {
        my $self = shift;
        # $self->request isa SRU::Request::Explain
        # $self->response isa SRU::Response::Explain
    }
    sub scan {
        my $self = shift;
        # $self->request isa SRU::Request::Scan
        # $self->response isa SRU::Response::Scan
        # $self->cql is the root node of a CQL::Parser-parsed query
    }
    sub searchRetrieve {
        my $self = shift;
        # $self->request isa SRU::Request::SearchRetrieve
        # $self->response isa SRU::Response::SearchRetrieve
        # $self->cql is the root node of a CQL::Parser-parsed query
    }
    package main;
    MySRU->new->run;
```

## DESCRIPTION

This module brings together all of the SRU verbs (explain, scan and searchRetrieve) under a sub-classable object based on CGI::Application.

## METHODS

### explain

This method is used to return an explain response. It is the default method.

### scan

This method returns a scan response.

### searchRetrieve

This method returns a searchRetrieve response.

## CGI::APPLICATION METHODS

### setup

Sets the `"run_modes"`, `"mode_param"` and the default runmode (explain).

### cgiapp\_prerun

Parses the incoming SRU request and if needed, checks the CQL query.

### cgiapp\_postrun

Sets the content type (text/xml) and serializes the response.

### error\_mode

Stub error runmode.

## AUTHORS

- •

  Brian Cassidy \<bricas@cpan.org\>

- •

  Ed Summers \<ehs@pobox.com\>

- •

  Jakob Voss \<voss@gbv.de\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2013 by Ed Summers.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
