diff --git a/index.html b/index.html new file mode 100644 index 0000000..d61af51 --- /dev/null +++ b/index.html @@ -0,0 +1,2284 @@ + + + + + + + +IR IIIF Service REST API + + + + + +
+

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

+ + ++++ + + + + + + + + + + + + +
Table 1. /resources/{id}
ParameterDescription

+id+

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

+ + ++++ + + + + + + + + + + + + +
Table 2. /resources/{id}/redirect
ParameterDescription

+id+

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

+ ++++ + + + + + + + + + + + + +
ParameterDescription

+uri+

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

+ ++++ + + + + + + + + + + + + +
ParameterDescription

+uri+

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

+ ++++ + + + + + + + + + + + + +
ParameterDescription

+uri+

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

+ + ++++ + + + + + + + + + + + + +
Table 3. /resources/{id}
ParameterDescription

+id+

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

+ + ++++ + + + + + + + + + + + + +
Table 4. /fedora/collection/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 5. /fedora/presentation/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 6. /fedora/sequence/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 7. /fedora/canvas/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 8. /fedora/image/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 9. /dspace/collection/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 10. /dspace/presentation/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 11. /dspace/sequence/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 12. /dspace/canvas/{context}
ParameterDescription

+context+

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

+ + ++++ + + + + + + + + + + + + +
Table 13. /dspace/image/{context}
ParameterDescription

+context+

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'
+
+
+
+
+
+
+
+ + + + + + \ No newline at end of file