This endpoint is available at /iiif/3.
This endpoint can be enabled or disabled using the endpoint.iiif.3.enabled configuration key.
Version 3.0 of this API is implemented at a compliance level of 2.
sizesendpoint.iiif.min_size. (To restrict access to only these sizes, use the endpoint.iiif.restrict_to_sizes configuration option.)tileswidth and height are a multiple of the native tile dimensions no smaller than the value of the endpoint.iiif.min_tile_size configuration key.endpoint.iiif.min_tile_size configuration key.maxAreamax_pixels and max_scale.Custom keys can be added to the information JSON response, such as to declare service profiles or add a rights statement. The delegate class needs to implement the extra_iiif3_information_response_keys() method. An example implementation follows:
class CustomDelegate
def extra_iiif3_information_response_keys(options = {})
{
'rights' => 'http://example.org/license.html',
'service' => [
{
'@id': 'https://example.org/auth/login',
'@type': 'AuthCookieService1',
'profile': 'http://iiif.io/api/auth/1/login',
'label': 'Log In'
}
]
}
end
endThis endpoint is available at /iiif/2.
This endpoint can be enabled or disabled using the endpoint.iiif.2.enabled configuration key.
Version 2.1.1 of this API is implemented. Compliance level is dynamically computed and declared on a per-processor basis. Most processors are "Level 2"-compliant.
sizesendpoint.iiif.min_size. (To restrict access to only these sizes, use the endpoint.iiif.restrict_to_sizes configuration option.)tileswidth and height are a multiple of the native tile dimensions no smaller than the value of the endpoint.iiif.min_tile_size configuration key.endpoint.iiif.min_tile_size configuration key.profile.formatsprofile.maxAreamax_pixels and max_scale.profile.qualitiesprofile.supportsattribution, service, etc.)Custom keys can be added to the information JSON response, such as to declare service profiles or, beginning in Image API 2.1, an optional rights statement and/or logo. The delegate class needs to implement the extra_iiif2_information_response_keys() method. An example implementation follows:
class CustomDelegate
def extra_iiif2_information_response_keys(options = {})
{
'attribution' => 'Copyright My Great Organization. All rights reserved.',
'license' => 'http://example.org/license.html',
'logo' => 'http://example.org/logo.png',
'service' => {
'@context' => 'http://iiif.io/api/annex/services/physdim/1/context.json',
'profile' => 'http://iiif.io/api/annex/services/physdim',
'physicalScale' => 0.0025,
'physicalUnits' => 'in'
}
}
end
endThis endpoint is available at /iiif/1.
This endpoint can be enabled or disabled using the endpoint.iiif.1.enabled configuration key.
Version 1.1 of this API is implemented. Compliance level is dynamically computed and declared on a per-processor basis. Most processors are "Level 2"-compliant.
tile_width and tile_heightendpoint.iiif.min_tile_size configuration key, or the full image dimensions.endpoint.iiif.min_tile_size.formatsqualitiesprofileAll endpoints support these additional features:
Some image formats support multiple pages within the same image file. When using PdfBoxProcessor or some other processor/format combination that supports multiple pages, a page number argument can be supplied in the identifier path component. See Meta-Identifiers for more information.
Metadata embedded within most supported formats can be exposed in information responses. See Viewing Metadata.
The Content-Disposition HTTP response header tells clients whether to attempt to display a response entity inline or download it, perhaps accompanied by a user prompt. A response-content-disposition query argument can be used to suggest a value to override that on a per-request basis. This is useful for "linking to a download." For example, the following URL will cause web browsers to download the image identified by some-identifier and save it as image.jpg:
http://my-image-server/iiif/3/some-identifier/full/max/0/default.jpg
?response-content-disposition=attachment%3B%20filename%3Dimage.jpg
The value of the query argument must be URL-encoded. In this case, the decoded form is: attachment; filename=image.jpg.
The behavior of the caches can be overridden on a per-request basis by supplying a cache URL query argument with one of the following values:
nocache or falseCache-Control response header that may be configured.recacheThe Control Panel is a web-based administrative interface with monitoring and configuration capabilities. To enable it, set endpoint.admin.enabled to true and set a username and secret in the endpoint.admin.* keys. Then, navigate to /admin in a web browser.
Changes made in the Control Panel will instantly update the application configuration, although some will require a restart to take effect. They will also be written to the configuration file within a few seconds.
A health check endpoint is available at /health. By default, it simply returns HTTP 200 OK, but if endpoint.health.dependency_check is set to true, it also performs several other checks:
This makes the for a more thorough health check, but also a slower one that may be redundant if these services are already monitored.
The JSON response includes one of three color codes:
GREEN indicates normal functionality.YELLOW indicates a warning condition.RED indicates a failure condition.HTTP 200 is returned for GREEN status, and HTTP 500 for all other statuses.
The HTTP API is disabled by default, but can be enabled by setting the endpoint.api.enabled configuration option to true.
All methods require HTTP Basic authentication. Credentials are set in endpoint.api.username and endpoint.api.secret.
Invoking a POST /tasks request creates an asynchronous task identified by a UUID and submits it to a processing queue. Its status can be checked via GET /tasks/:uuid. Task records are retained in memory, but are not persisted, so checking a task after a restart will result in a 404 Not Found response.
| Request Method | GET |
| URI | /status |
| Expected Response Status | 200 OK |
| Expected Response Content Type | application/json |
| Request Method | GET |
| URI | /configuration |
| Expected Response Status | 200 OK |
| Expected Response Content Type | application/json |
| Request Method | PUT |
| URI | /configuration |
| Request Content Type | application/json |
| Request Body | Should contain the configuration keys to change:
|
| Expected Response | 200 OK |
| Notes | The in-memory configuration will be updated instantly, although some key changes won't take effect until the application is restarted. Changes will also be written to the configuration file within a few seconds. |
| Request Method | POST |
| URI | /tasks |
| Request Content Type | application/json |
| Request Body | |
| Expected Response | 202 Accepted with task URI in Location header |
| Request Method | POST |
| URI | /tasks |
| Request Content Type | application/json |
| Request Body | |
| Expected Response | 202 Accepted with task URI in Location header |
| Request Method | POST |
| URI | /tasks |
| Request Content Type | application/json |
| Request Body | |
| Expected Response | 202 Accepted with task URI in Location header |
| Request Method | POST |
| URI | /tasks |
| Request Content Type | application/json |
| Request Body | |
| Expected Response | 202 Accepted with task URI in Location header |