annotate doc/src/site/markdown/iiif-api.md @ 1635:cd45d49f438d

cleanup and add doc about Manifester servlet.
author robcast
date Fri, 02 Jun 2017 19:01:36 +0200
parents 1616ea719290
children b234dd84320d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
1 # The digilib IIIF API
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
2
1635
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
3 ## IIIF Image API
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
4
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
5 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.
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
6
1635
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
7 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),
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
8
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
9 IIIF Image API URLs for an image request have the form:
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
10
1452
9429bb9c3a42 more IIIF API support (expose size of prescaled images).
robcast
parents: 1427
diff changeset
11 http[s]://{server}/{digilib-webapp}/Scaler/{iiif-prefix}/{identifier}/{region}/{size}/{rotation}/{quality}.{format}
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
12
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
13 where `digilib-webapp` is the name of the digilib web application in the servlet container.
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
14
1452
9429bb9c3a42 more IIIF API support (expose size of prescaled images).
robcast
parents: 1427
diff changeset
15 The value of `iiif-prefix` is defined by the `iiif-prefix` parameter in [digilib-config](digilib-config.html). The default value is "IIIF".
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
16
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
17 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".
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
18
1452
9429bb9c3a42 more IIIF API support (expose size of prescaled images).
robcast
parents: 1427
diff changeset
19 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/).
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
20
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
21 A IIIF Image API image request URL could look like:
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
22
1452
9429bb9c3a42 more IIIF API support (expose size of prescaled images).
robcast
parents: 1427
diff changeset
23 http://www.example.org/digilib/Scaler/IIIF/books!book1!page0002/full/!150,75/0/default.jpg
1396
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
24
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
25 An info request URL for the same image looks like:
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
26
7a2de95a7b8e documentation updated with Ubbo's codec tuning tips and IIIF API info.
robcast
parents:
diff changeset
27 http://www.example.org/digilib/Scaler/IIIF/books!book1!page0002/info.json
1635
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
28
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
29 ## IIIF Presentation API
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
30
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
31 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.
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
32
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
33 To build digilib with the Manifester servlet you need to add the `iiif-presentation` profile to your Maven build:
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
34
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
35 mvn -Piiif-presentation package
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
36
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
37 (or use the digilib-webapp-X.X.X-srv3p.war file from the website)
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
38
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
39 The Manifester servlet URLs have the form:
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
40
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
41 http[s]://{server}/{digilib-webapp}/Manifester/{iiif-prefix}/{identifier}
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
42
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
43 So you can get a manifest for all images in the directory `/books/book1` with a URL like:
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
44
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
45 http://www.example.org/digilib/Manifester/IIIF/books!book1
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
46
cd45d49f438d cleanup and add doc about Manifester servlet.
robcast
parents: 1458
diff changeset
47 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.