view doc/src/site/markdown/iiif-api.md @ 1685:b234dd84320d

cleanup
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Mon, 26 Mar 2018 16:12:41 +0200
parents cd45d49f438d
children e46756f0d661
line wrap: on
line source

# The digilib IIIF API

## IIIF Image API

The Scaler servlet provides not only its native [Scaler API](scaler-api.html) but also an API 
compliant to the standards of the International Image Interoperability Framework http://iiif.io.

As of version 2.3.7 digilib supports the [IIIF Image API version 2](http://iiif.io/api/image/2.1/) 
at [compliance level 2](http://iiif.io/api/image/2.0/compliance.html). You can switch between API 
version 1.1 and 2.0 support with the `iiif-api-version` parameter in [digilib-config](digilib-config.html),  

IIIF Image API URLs for an image request have the form:

    http[s]://{server}/{digilib-webapp}/Scaler/{iiif-prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format} 

where `digilib-webapp` is the name of the digilib web application in the servlet container. 

The value of `iiif-prefix` is defined by the `iiif-prefix` parameter in [digilib-config](digilib-config.html). 
The default value is "IIIF".

The `identifier` part of the URL must not contain slashes. Since the identifier is mapped to the digilib 
fn-parameter, which is a filesystem path that likely contains slashes separating subdirectories, all 
occurrences of a slash have to be replaced by the value of the `iiif-slash-replacement` parameter in 
[digilib-config](digilib-config.html). The default value of the replacement string is "!", so the fn-path
 "books/book1/page0002" becomes the identifier "books!book1!page0002".

For a definition of the other parameters `region`, `size`, `rotation`, `quality`, and `format` please 
see the [IIIF Image API docs](http://iiif.io/api/image/2.0/).

A IIIF Image API image request URL could look like:

    http://www.example.org/digilib/Scaler/IIIF/books!book1!page0002/full/!150,75/0/default.jpg

An info request URL for the same image looks like: 

    http://www.example.org/digilib/Scaler/IIIF/books!book1!page0002/info.json

## IIIF Presentation API

As of version 2.5.3 digilib provides the optional Manifester servlet that generates simple 
[IIIF Presentation API version 2](http://iiif.io/api/presentation/2.1) manifests that can 
be used with any [IIIF viewer](http://iiif.io/apps-demos/#image-viewing-clients) to navigate 
a directory full of images with the functions of a book-reader or light-table.

To build digilib with the Manifester servlet you need to add the `iiif-presentation` profile to your Maven build:

    mvn -Piiif-presentation package

(or use the digilib-webapp-X.X.X-srv3p.war file from the website)

The Manifester servlet URLs have the form:

    http[s]://{server}/{digilib-webapp}/Manifester/{iiif-prefix}/{identifier}

So you can get a manifest for all images in the directory `/books/book1` with a URL like:

    http://www.example.org/digilib/Manifester/IIIF/books!book1

To try out a viewer on your manifest you can go to the website of the Universal Viewer 
[http://universalviewer.io/](http://universalviewer.io/) and enter the URL of your manifest 
in the "view a manifest" box on the page. This will work even with a local digilib 
installation since the Javascript in your Browser reads and interprets the manifest.