Proxies API

The proxy API is an XML API that has been implemented as convenience to group together various remote resources with the same output wrapping as all the other Culture-Hub search APIs. The configuration of these proxies is done in the organization production.conf.

The API base URL for all proxy actions is:

`http://{baseUrl}:{portNumber}/api/proxy`

note: The proxy API is an XML only API.

List all proxies

This commands list all the proxies thats have been configured for this organization.

The list command is given via a REST command appended to the proxy base URL:

`http://{baseUrl}:{portNumber}/api/proxy/list`

The output of the list command is a list of all available proxies structured as follows:

<explain>
    <item>
        <id>europeana</id>
        <url>http://api.europeana.eu/api/opensearch.rss</url>
    </item>
</explain>
  • <id> = is the identifier that can be used for the proxy search
  • <url> = is the url that is used by the proxy

In the proxy configuration some hidden parameters like api-keys are already included.

examples = http://kulturnett2.delving.org:80/proxy/list

Search a specific proxy

The search command is given via a REST command appended to the proxy base URL:

`http://{baseUrl}:{portNumber}/api/proxy/{proxyId}/search`

The proxyId is the <id> from the output of the proxy list command.

The search command accepts the following url query parameters:

  • query = any search query supported by the service that is proxied.
  • start = any integer that is less than the total records return and starts at 1. Services which are zero based will be remapped to 1 based paging.

The output of the search command is a list of records structured as follows:

<results xmlns:europeana="http://www.europeana.eu" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:enrichment="http://www.europeana.eu/schemas/ese/enrichment/" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <pagination>
        <numFound>1</numFound>
        <start>1</start>
        <rows>1</rows>
    </pagination>
    <items>
        <item>
            <id>{itemId}</id>
            <fields>
                {all metadata fields as returned by the proxied service}
            </fields>
        </item>
    </items>
</results>
  • <pagination> = if the proxied service supports returning paging information the pagination block will be returned in the response
    • <numFound> = the total numbers of records found (int)
    • <start> = the start number of the first record of the returned page (int)
    • <rows> = to number records - i.e. items - returned on the page (int)
  • <item> = This wraps each record returned by the proxied service
    • <id> = is the identifier that can be used to return the full-view in the item service, i.e. itemId. The id field is only shown if the proxied service supports the request of a single record with all metadata fields.
    • <fields> = has as its children each metadata field returned by the proxied service

examples = http://kulturnett2.delving.org:80/proxy/wikipedia.en/search?query=bard

Request full-view item from proxy

The item command is given via a REST command appended to the proxy base URL:

`http://{baseUrl}:{portNumber}/api/proxy/item/{itemId}`

The itemId can be any of the ids specified in the /items/item/id/ path of the search response.

The item command has no query parameters.

The output of the item command is a verbose rendering of the return of the proxy service.