Introduction
+1. Resource Resolver API
+A Collection of API endpoints used for interacting with IR IIIF Service’s cached resource URLs.
+1.1. Get Resource URL
+A GET
to the /resources/{id}
endpoint which will return the resource URL.
1.1.1. Sample Request
+GET /resources/683b3040-8456-31fd-9cbc-9df1b9c31146 HTTP/1.1
+Accept: text/plain
+Host: localhost:8080
+1.1.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The resource id. |
+
1.1.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 41
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+
+http://localhost:9000/fcrepo/rest/image01
+1.1.4. Example Curl Request
+$ curl 'http://localhost:8080/resources/683b3040-8456-31fd-9cbc-9df1b9c31146' -i -X GET \
+ -H 'Accept: text/plain'
+1.2. Redirect to Resource
+A GET
to the /resources/{id}/redirect
endpoint which will redirect to the resource.
1.2.1. Sample Request
+GET /resources/683b3040-8456-31fd-9cbc-9df1b9c31146/redirect HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+1.2.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The resource id. |
+
1.2.3. Sample Response
+HTTP/1.1 301 Moved Permanently
+Content-Language: en
+Location: http://localhost:9000/fcrepo/rest/image01
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+1.2.4. Example Curl Request
+$ curl 'http://localhost:8080/resources/683b3040-8456-31fd-9cbc-9df1b9c31146/redirect' -i -X GET \
+ -H 'Accept: application/json'
+1.3. Get Resource Id
+A GET
request with query parameter uri
to the /resources
endpoint which will return the resource id.
1.3.1. Sample Request
+GET /resources/lookup?uri=fubar HTTP/1.1
+Accept: text/plain
+Host: localhost:8080
+1.3.2. Request Parameters
+Parameter | +Description | +
---|---|
|
+The resource URI. |
+
1.3.3. Sample Response
+HTTP/1.1 400 Bad Request
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 22
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+
+Not a valid URL: fubar
+1.3.4. Example Curl Request
+$ curl 'http://localhost:8080/resources/lookup?uri=fubar' -i -X GET \
+ -H 'Accept: text/plain'
+1.4. Post Resource
+A POST
request with query parameter uri
to the /resources
endpoint which will cache resource URL and return the resource id.
1.4.1. Sample Request
+POST /resources HTTP/1.1
+Accept: text/plain
+Host: localhost:8080
+Content-Type: application/x-www-form-urlencoded
+
+uri=http%3A%2F%2Flocalhost%3A9000%2Ffcrepo%2Frest%2Fimage03
+1.4.2. Request Parameters
+Parameter | +Description | +
---|---|
|
+The resource URI. |
+
1.4.3. Sample Response
+HTTP/1.1 201 Created
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 36
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+
+faddcc2e-4b31-3321-888f-328720130fc1
+1.4.4. Example Curl Request
+$ curl 'http://localhost:8080/resources' -i -X POST \
+ -H 'Accept: text/plain' \
+ -d 'uri=http%3A%2F%2Flocalhost%3A9000%2Ffcrepo%2Frest%2Fimage03'
+1.5. Put Resource
+A PUT
request with query parameter uri
to the /resources
endpoint which will update cached resource URL and return the resource id.
1.5.1. Sample Request
+PUT /resources HTTP/1.1
+Accept: text/plain
+Host: localhost:8080
+Content-Type: application/x-www-form-urlencoded
+
+uri=http%3A%2F%2Flocalhost%3A9000%2Ffcrepo%2Frest%2Fimage01
+1.5.2. Request Parameters
+Parameter | +Description | +
---|---|
|
+The resource URI. |
+
1.5.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 36
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+
+683b3040-8456-31fd-9cbc-9df1b9c31146
+1.5.4. Example Curl Request
+$ curl 'http://localhost:8080/resources' -i -X PUT \
+ -H 'Accept: text/plain' \
+ -d 'uri=http%3A%2F%2Flocalhost%3A9000%2Ffcrepo%2Frest%2Fimage01'
+1.6. Remove Resource
+A DELETE
to the /resources/{id}
endpoint which will remove the cached resource URL.
1.6.1. Sample Request
+DELETE /resources/683b3040-8456-31fd-9cbc-9df1b9c31146 HTTP/1.1
+Accept: text/plain
+Host: localhost:8080
+1.6.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The resource id. |
+
1.6.3. Sample Response
+HTTP/1.1 204 No Content
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+1.6.4. Example Curl Request
+$ curl 'http://localhost:8080/resources/683b3040-8456-31fd-9cbc-9df1b9c31146' -i -X DELETE \
+ -H 'Accept: text/plain'
+2. Fedora IIIF Manifest Generation API
+A Collection of API endpoints used for generating various IIIF manifests from Fedora PCDM.
+2.1. Collection Manifest
+A GET
to the /fedora/collection/{context}
endpoint which will return the collection manifest for the provided context.
2.1.1. Sample Request
+GET /fedora/collection/cars_pcdm HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+2.1.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
2.1.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1499
+
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "http://localhost:9000/fedora-pcdm/collection/mwbObjects/TGWCatalog",
+ "@type": "sc:Collection",
+ "attribution": "Bob Boring",
+ "description": [
+ "A page level collection of The Great War exhibit catalog.",
+ "The assets are JPEGs created from TIFFs created when the catalog was digitized."
+ ],
+ "label": [
+ "The Great War Exhibit Catalog",
+ "TGW_Catalog"
+ ],
+ "logo": "https://library.tamu.edu/assets/images/tamu-logos/TAM-PrimaryMarkB.png",
+ "manifests": [
+ {
+ "@id": "http://localhost:9000/fedora-pcdm/presentation/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Manifest",
+ "label": "ExCat0084"
+ }
+ ],
+ "metadata": [
+ {
+ "label": "identifier",
+ "value": "TGW_Catalog"
+ },
+ {
+ "label": "references",
+ "value": "The Great War Exhibit Catalog"
+ },
+ {
+ "label": "abstract",
+ "value": "Web presentation images for The Great War catalog. These images will be part of a IIIF Manifest version of the document."
+ },
+ {
+ "label": "isPartOf",
+ "value": "The Great War Exhibit"
+ },
+ {
+ "label": "title",
+ "value": "The Great War Exhibit Catalog"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "contributor",
+ "value": "Bob Boring"
+ },
+ {
+ "label": "context",
+ "value": "mwbObjects/TGWCatalog"
+ }
+ ],
+ "viewingHint": "multi-part"
+}
+2.1.4. Example Curl Request
+$ curl 'http://localhost:8080/fedora/collection/cars_pcdm' -i -X GET \
+ -H 'Accept: application/json'
+2.2. Presentation Manifest
+A GET
to the /fedora/presentation/{context}
endpoint which will return the presentation manifest for the provided context.
2.2.1. Sample Request
+GET /fedora/presentation/cars_pcdm_objects/chevy HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+2.2.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
2.2.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 3902
+
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "http://localhost:9000/fedora-pcdm/presentation/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Manifest",
+ "attribution": "Bob Boring",
+ "description": [
+ "There is a smudge",
+ "Back Cover"
+ ],
+ "label": "ExCat0084",
+ "license": "Test license",
+ "logo": "https://library.tamu.edu/assets/images/tamu-logos/TAM-PrimaryMarkB.png",
+ "metadata": [
+ {
+ "label": "date",
+ "value": "1/5/2018"
+ },
+ {
+ "label": "identifier",
+ "value": "ExCat0084"
+ },
+ {
+ "label": "format",
+ "value": "jpeg"
+ },
+ {
+ "label": "isPartOf",
+ "value": " The Great War Catalog, page Back Cover"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "contributor",
+ "value": "Bob Boring"
+ },
+ {
+ "label": "context",
+ "value": "mwbObjects/TGWCatalog/Pages/ExCat0084"
+ }
+ ],
+ "sequences": [
+ {
+ "@id": "http://localhost:9000/fedora-pcdm/sequence/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Canvas",
+ "height": 3000,
+ "images": [
+ {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/info.json",
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "resource": {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/png; charset=utf-8",
+ "height": 3000,
+ "service": {
+ "label": "Fedora IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn"
+ },
+ "width": 2400
+ }
+ }
+ ],
+ "label": "ExCat0084",
+ "metadata": [
+ {
+ "label": "date",
+ "value": "1/5/2018"
+ },
+ {
+ "label": "identifier",
+ "value": "ExCat0084"
+ },
+ {
+ "label": "format",
+ "value": "jpeg"
+ },
+ {
+ "label": "isPartOf",
+ "value": " The Great War Catalog, page Back Cover"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "contributor",
+ "value": "Bob Boring"
+ },
+ {
+ "label": "context",
+ "value": "mwbObjects/TGWCatalog/Pages/ExCat0084"
+ }
+ ],
+ "width": 2400
+ }
+ ],
+ "label": "ExCat0084"
+ }
+ ],
+ "thumbnail": {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/full/!100,100/0/default.jpg",
+ "service": {
+ "label": "Fedora IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn"
+ }
+ }
+}
+2.2.4. Example Curl Request
+$ curl 'http://localhost:8080/fedora/presentation/cars_pcdm_objects/chevy' -i -X GET \
+ -H 'Accept: application/json'
+2.3. Sequence Manifest
+A GET
to the /fedora/sequence/{context}
endpoint which will return the sequence manifest for the provided context.
2.3.1. Sample Request
+GET /fedora/sequence/cars_pcdm_objects/chevy HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+2.3.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
2.3.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 2134
+
+{
+ "@id": "http://localhost:9000/fedora-pcdm/sequence/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Canvas",
+ "height": 3000,
+ "images": [
+ {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/info.json",
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "resource": {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/png; charset=utf-8",
+ "height": 3000,
+ "service": {
+ "label": "Fedora IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn"
+ },
+ "width": 2400
+ }
+ }
+ ],
+ "label": "ExCat0084",
+ "metadata": [
+ {
+ "label": "date",
+ "value": "1/5/2018"
+ },
+ {
+ "label": "identifier",
+ "value": "ExCat0084"
+ },
+ {
+ "label": "format",
+ "value": "jpeg"
+ },
+ {
+ "label": "isPartOf",
+ "value": " The Great War Catalog, page Back Cover"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "contributor",
+ "value": "Bob Boring"
+ },
+ {
+ "label": "context",
+ "value": "mwbObjects/TGWCatalog/Pages/ExCat0084"
+ }
+ ],
+ "width": 2400
+ }
+ ],
+ "label": "ExCat0084"
+}
+2.3.4. Example Curl Request
+$ curl 'http://localhost:8080/fedora/sequence/cars_pcdm_objects/chevy' -i -X GET \
+ -H 'Accept: application/json'
+2.4. Canvas Manifest
+A GET
to the /fedora/canvas/{context}
endpoint which will return the canvas manifest for the provided context.
2.4.1. Sample Request
+GET /fedora/canvas/cars_pcdm_objects/chevy/pages/page_0 HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+2.4.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
2.4.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1735
+
+{
+ "@id": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "@type": "sc:Canvas",
+ "height": 3000,
+ "images": [
+ {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/info.json",
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/fedora-pcdm/canvas/mwbObjects/TGWCatalog/Pages/ExCat0084",
+ "resource": {
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/png; charset=utf-8",
+ "height": 3000,
+ "service": {
+ "label": "Fedora IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZmVkb3JhLXBjZG06bXdiT2JqZWN0cy9UR1dDYXRhbG9nL1BhZ2VzL0V4Q2F0MDA4NC9maWxlcy9FeENhdDAwODQuanBn"
+ },
+ "width": 2400
+ }
+ }
+ ],
+ "label": "ExCat0084",
+ "metadata": [
+ {
+ "label": "date",
+ "value": "1/5/2018"
+ },
+ {
+ "label": "identifier",
+ "value": "ExCat0084"
+ },
+ {
+ "label": "format",
+ "value": "jpeg"
+ },
+ {
+ "label": "isPartOf",
+ "value": " The Great War Catalog, page Back Cover"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "contributor",
+ "value": "Bob Boring"
+ },
+ {
+ "label": "context",
+ "value": "mwbObjects/TGWCatalog/Pages/ExCat0084"
+ }
+ ],
+ "width": 2400
+}
+2.4.4. Example Curl Request
+$ curl 'http://localhost:8080/fedora/canvas/cars_pcdm_objects/chevy/pages/page_0' -i -X GET \
+ -H 'Accept: application/json'
+2.5. Image Manifest
+A GET
to the /fedora/image/{context}
endpoint which will return the image manifest for the provided context.
2.5.1. Sample Request
+GET /fedora/image/cars_pcdm_objects/chevy/pages/page_0/files/PTAR_800x400.png HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+2.5.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
2.5.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1528
+
+{
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/8487f722-ac3b-4c73-9cab-79a65d24c923",
+ "protocol": "http://iiif.io/api/image",
+ "width": 2400,
+ "height": 3000,
+ "sizes": [
+ {
+ "width": 75,
+ "height": 94
+ },
+ {
+ "width": 150,
+ "height": 188
+ },
+ {
+ "width": 300,
+ "height": 375
+ },
+ {
+ "width": 600,
+ "height": 750
+ },
+ {
+ "width": 1200,
+ "height": 1500
+ },
+ {
+ "width": 2400,
+ "height": 3000
+ }
+ ],
+ "tiles": [
+ {
+ "width": 512,
+ "height": 512,
+ "scaleFactors": [
+ 1,
+ 2,
+ 4,
+ 8,
+ 16,
+ 32
+ ]
+ }
+ ],
+ "profile": [
+ "http://iiif.io/api/image/2/level2.json",
+ {
+ "formats": [
+ "jpg",
+ "tif",
+ "gif",
+ "png"
+ ],
+ "maxArea": 400000000,
+ "qualities": [
+ "bitonal",
+ "default",
+ "gray",
+ "color"
+ ],
+ "supports": [
+ "regionByPx",
+ "sizeByW",
+ "sizeByWhListed",
+ "cors",
+ "regionSquare",
+ "sizeByDistortedWh",
+ "sizeAboveFull",
+ "canonicalLinkHeader",
+ "sizeByConfinedWh",
+ "sizeByPct",
+ "jsonldMediaType",
+ "regionByPct",
+ "rotationArbitrary",
+ "sizeByH",
+ "baseUriRedirect",
+ "rotationBy90s",
+ "profileLinkHeader",
+ "sizeByForcedWh",
+ "sizeByWh",
+ "mirroring"
+ ]
+ }
+ ]
+}
+2.5.4. Example Curl Request
+$ curl 'http://localhost:8080/fedora/image/cars_pcdm_objects/chevy/pages/page_0/files/PTAR_800x400.png' -i -X GET \
+ -H 'Accept: application/json'
+3. DSpace IIIF Manifest Generation API
+A Collection of API endpoints used for generating various IIIF manifests from DSpace RDF.
+3.1. Collection Manifest
+A GET
to the /dspace/collection/{context}
endpoint which will return the collection manifest for the provided context.
3.1.1. Sample Request
+GET /dspace/collection/123456789/158298 HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+3.1.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
3.1.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 800
+
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "http://localhost:9000/dspace-rdf/collection/123456789/158299",
+ "@type": "sc:Collection",
+ "attribution": "Chevy",
+ "label": "Cool Cars",
+ "logo": "https://library.tamu.edu/assets/images/tamu-logos/TAM-PrimaryMarkB.png",
+ "manifests": [
+ {
+ "@id": "http://localhost:9000/dspace-rdf/presentation/123456789/158308",
+ "@type": "sc:Manifest",
+ "label": "Corvette"
+ }
+ ],
+ "metadata": [
+ {
+ "label": "creator",
+ "value": "Chevy"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "title",
+ "value": "Cool Cars"
+ },
+ {
+ "label": "context",
+ "value": "rdf/handle/123456789/158299"
+ }
+ ],
+ "viewingHint": "multi-part"
+}
+3.1.4. Example Curl Request
+$ curl 'http://localhost:8080/dspace/collection/123456789/158298' -i -X GET \
+ -H 'Accept: application/json'
+3.2. Presentation Manifest
+A GET
to the /dspace/presentation/{context}
endpoint which will return the presentation manifest for the provided context.
3.2.1. Sample Request
+GET /dspace/presentation/123456789/158308 HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+3.2.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
3.2.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 3104
+
+{
+ "@context": "http://iiif.io/api/presentation/2/context.json",
+ "@id": "http://localhost:9000/dspace-rdf/presentation/123456789/158308",
+ "@type": "sc:Manifest",
+ "attribution": "Chevy",
+ "description": "A fast car",
+ "label": "Corvette",
+ "license": "Test license",
+ "logo": "https://library.tamu.edu/assets/images/tamu-logos/TAM-PrimaryMarkB.png",
+ "metadata": [
+ {
+ "label": "date",
+ "value": "2018-04-24T13:29:59Z^^http://www.w3.org/2001/XMLSchema#dateTime"
+ },
+ {
+ "label": "creator",
+ "value": "Chevy"
+ },
+ {
+ "label": "license",
+ "value": "Test license"
+ },
+ {
+ "label": "available",
+ "value": "2018-04-24T13:29:59Z^^http://www.w3.org/2001/XMLSchema#dateTime"
+ },
+ {
+ "label": "title",
+ "value": "Corvette"
+ },
+ {
+ "label": "context",
+ "value": "rdf/handle/123456789/158308"
+ }
+ ],
+ "sequences": [
+ {
+ "@id": "http://localhost:9000/dspace-rdf/sequence/123456789/158308",
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png",
+ "@type": "sc:Canvas",
+ "height": 480,
+ "images": [
+ {
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/info.json",
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png",
+ "resource": {
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/png; charset=utf-8",
+ "height": 480,
+ "service": {
+ "label": "DSpace IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n"
+ },
+ "width": 960
+ }
+ }
+ ],
+ "label": "1sports-car-146873_960_720.png",
+ "width": 960
+ }
+ ],
+ "label": "Corvette"
+ }
+ ],
+ "thumbnail": {
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/full/!100,100/0/default.jpg",
+ "service": {
+ "label": "DSpace IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n"
+ }
+ }
+}
+3.2.4. Example Curl Request
+$ curl 'http://localhost:8080/dspace/presentation/123456789/158308' -i -X GET \
+ -H 'Accept: application/json'
+3.3. Sequence Manifest
+A GET
to the /dspace/sequence/{context}
endpoint which will return the sequence manifest for the provided context.
3.3.1. Sample Request
+GET /dspace/sequence/123456789/158308 HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+3.3.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
3.3.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1517
+
+{
+ "@id": "http://localhost:9000/dspace-rdf/sequence/123456789/158308",
+ "@type": "sc:Sequence",
+ "canvases": [
+ {
+ "@id": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png",
+ "@type": "sc:Canvas",
+ "height": 480,
+ "images": [
+ {
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/info.json",
+ "@type": "oa:Annotation",
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png",
+ "resource": {
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/full/full/0/default.jpg",
+ "@type": "dctypes:Image",
+ "format": "image/png; charset=utf-8",
+ "height": 480,
+ "service": {
+ "label": "DSpace IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n"
+ },
+ "width": 960
+ }
+ }
+ ],
+ "label": "1sports-car-146873_960_720.png",
+ "width": 960
+ }
+ ],
+ "label": "123456789/158308"
+}
+3.3.4. Example Curl Request
+$ curl 'http://localhost:8080/dspace/sequence/123456789/158308' -i -X GET \
+ -H 'Accept: application/json'
+3.4. Canvas Manifest
+A GET
to the /dspace/canvas/{context}
endpoint which will return the canvas manifest for the provided context.
3.4.1. Sample Request
+GET /dspace/canvas/123456789/158308/1/sports-car-146873_960_720.png HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+3.4.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
3.4.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1253
+
+{
+ "height": 480,
+ "images": [
+ {
+ "motivation": "sc:painting",
+ "on": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png",
+ "resource": {
+ "format": "image/png; charset=utf-8",
+ "height": 480,
+ "width": 960,
+ "service": {
+ "label": "DSpace IIIF Image Resource Service",
+ "profile": "http://iiif.io/api/image/2/level0.json",
+ "@context": "http://iiif.io/api/image/2/context.json",
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n"
+ },
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/full/full/0/default.jpg",
+ "@type": "dctypes:Image"
+ },
+ "@id": "http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF83MjAucG5n/info.json",
+ "@type": "oa:Annotation"
+ }
+ ],
+ "label": "1sports-car-146873_960_720.png",
+ "width": 960,
+ "@type": "sc:Canvas",
+ "@id": "http://localhost:9000/dspace-rdf/canvas/123456789/158308/1/sports-car-146873_960_720.png"
+}
+3.4.4. Example Curl Request
+$ curl 'http://localhost:8080/dspace/canvas/123456789/158308/1/sports-car-146873_960_720.png' -i -X GET \
+ -H 'Accept: application/json'
+3.5. Image Manifest
+A GET
to the /dspace/image/{context}
endpoint which will return the image manifest for the provided context.
3.5.1. Sample Request
+GET /dspace/image/123456789/158308/1/sports-car-146873_960_20.png HTTP/1.1
+Accept: application/json
+Host: localhost:8080
+3.5.2. Path Parameters
+Parameter | +Description | +
---|---|
|
+The context path. |
+
3.5.3. Sample Response
+HTTP/1.1 200 OK
+Content-Type: application/json
+X-Content-Type-Options: nosniff
+X-XSS-Protection: 1; mode=block
+Cache-Control: no-cache, no-store, max-age=0, must-revalidate
+Pragma: no-cache
+Expires: 0
+X-Frame-Options: DENY
+Content-Length: 1322
+
+{
+ "@context":"http://iiif.io/api/image/2/context.json",
+ "@id":"http://localhost:8182/iiif/2/ZHNwYWNlLXJkZjp4bWx1aS9iaXRzdHJlYW0vMTIzNDU2Nzg5LzE1ODMwOC8xL3Nwb3J0cy1jYXItMTQ2ODczXzk2MF8yMC5wbmc=",
+ "protocol":"http://iiif.io/api/image",
+ "width":960,
+ "height":480,
+ "sizes":[
+ {
+ "width":240,
+ "height":120
+ },
+ {
+ "width":480,
+ "height":240
+ }
+ ],
+ "tiles":[
+ {
+ "width":960,
+ "height":480,
+ "scaleFactors":[
+ 1,
+ 2,
+ 4
+ ]
+ }
+ ],
+ "profile":[
+ "http://iiif.io/api/image/2/level2.json",
+ {
+ "formats":[
+ "jpg",
+ "tif",
+ "gif",
+ "png"
+ ],
+ "maxArea":400000000,
+ "qualities":[
+ "bitonal",
+ "default",
+ "gray",
+ "color"
+ ],
+ "supports":[
+ "sizeByW",
+ "regionByPx",
+ "sizeByWhListed",
+ "cors",
+ "regionSquare",
+ "sizeByDistortedWh",
+ "sizeAboveFull",
+ "canonicalLinkHeader",
+ "sizeByConfinedWh",
+ "sizeByPct",
+ "jsonldMediaType",
+ "regionByPct",
+ "sizeByH",
+ "rotationArbitrary",
+ "baseUriRedirect",
+ "rotationBy90s",
+ "profileLinkHeader",
+ "sizeByForcedWh",
+ "sizeByWh",
+ "mirroring"
+ ]
+ }
+ ]
+}
+3.5.4. Example Curl Request
+$ curl 'http://localhost:8080/dspace/image/123456789/158308/1/sports-car-146873_960_20.png' -i -X GET \
+ -H 'Accept: application/json'
+