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}
Parameter Description

+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
Parameter Description

+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

Parameter Description

+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

Parameter Description

+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

Parameter Description

+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}
Parameter Description

+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}
Parameter Description

+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: 1500

{
  "@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}
Parameter Description

+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: 3903

{
  "@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}
Parameter Description

+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: 2135

{
  "@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}
Parameter Description

+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: 1736

{
  "@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}
Parameter Description

+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: 1529

{
  "@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}
Parameter Description

+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: 801

{
  "@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}
Parameter Description

+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: 3105

{
  "@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}
Parameter Description

+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: 1518

{
  "@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}
Parameter Description

+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: 1254

{
  "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}
Parameter Description

+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: 1323

{
  "@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'