Proposed Decapod Export Server Architecture
Resources
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Redirects to the start page for the Decapod user interface. |
Success: 301 |
The set of all "Books" in Decapod.
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the "library" model, in JSON format.
{
library: [
{
name: “book name”,
url: “http://localhost:8080/library/'bookName'/”
}
]
}
|
Success: 200 |
POST |
Creates a new book and returns the URL |
Success: 201 |
PUT, DELETE |
N/A |
Error: 405 |
The information about a specific "Book".
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the "book" model, in JSON format.
{
title: "bookName",
description: "book description",
pages: “http://localhost:8080/library/'bookName'/pages/”
}
|
Success: 200 |
PUT |
Update the "book" model |
Success: 200 |
DELETE |
Removes a book and all its attached pages |
Success: 204 |
POST |
N/A |
Error: 405 |
The set of "pages" contained within a "book".
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the "book" model, in JSON format.
{
pages: [
{
id: “page id”,
index: “1”,
url: “http://localhost:8080/library/'bookName'/pages/'pageID'/”
}
]
}
|
Success: 200 |
POST |
Creates a new page and returns the URL |
Success: 201 |
PUT |
Update the "pages" model |
Success: 200 |
DELETE |
N/A |
Error: 405 |
The information about a specific page, including the information about it's adjustments.
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the "page" model, in JSON format.
{
title: "bookName",
description: "book description",
pages: [
{
id: “page id”,
origName: "originalFileName.png",
image: “http://localhost:8080/library/'bookName'/pages/'image.png'”
thumbnail: "http://localhost:8080/library/'bookName'/pages/'image-thumbnail.png'"
adjustments: {
rotation: "90", // in degrees
crop: "crop boundary" // some representation of the crop boundary
}
}
]
}
|
Success: 200 |
PUT |
Update the "page" model |
Success: 200 |
DELETE |
Removes the page |
Success: 204 |
POST |
N/A |
Error: 405 |
The information about a specific page, including the information about it's adjustments.
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the "page" model, in JSON format.
{
title: "bookName",
description: "book description",
pages: [
{
id: “page id”,
origName: "originalFileName.png",
image: “http://localhost:8080/library/'bookName'/pages/'image.png'”
thumbnail: "http://localhost:8080/library/'bookName'/pages/'image-thumbnail.png'"
adjustments: {
rotation: "90", // in degrees
crop: "crop boundary" // some representation of the crop boundary
}
}
]
}
|
Success: 200 |
PUT |
Update the "page" model |
Success: 200 |
DELETE |
Removes the page |
Success: 204 |
POST |
N/A |
Error: 405 |
This will be a base url that has the parameters for the type of export appended as segments afterwards.
e.g.
e.g.
Types |
Description |
|---|---|
Type 1 |
Image PDF |
Type 2 |
Image PDF with OCR |
Type 3 |
Computer Traced PDF with OCR |
Type 4 |
Font Matched PDF with OCR |
Query Parameters |
Description |
|---|---|
w, width |
float [0.1 - 30] cm |
h, height |
float [0.1 - 30] cm |
dpi |
integer [1 - 600] |
c, color, colour |
string [color, colour, grey, gray] |
bit |
integer [24, 16, 8, 1] |
Query parameters are optional and follow the genpdf spec.
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the status of the export and a link to the artifact if complete, in JSON format.
{
status: "complete",
url: "http://localhost:8080/library/'bookName'/export/pdf/'bookName'.pdf"
}
|
Success: 200 |
PUT |
Trigger the creation of the export artifact. |
Success: 202 |
DELETE |
Removes the export artifact |
Success: 204 |
POST |
N/A |
Error: 405 |
image
e.g.
possible formats include tiff, jpeg, png
Request Type |
Response / Action |
Status Code |
|---|---|---|
GET |
Returns the status of the export and a link to the artifact if complete, in JSON format.
{
status: "complete",
url: "http://localhost:8080/library/'bookName'/export/image/'bookName'.zip"
}
|
Success: 200 |
PUT |
Trigger the creation of the export artifact. |
Success: 202 |
DELETE |
Removes the export artifact |
Success: 204 |
POST |
N/A |
Error: 405 |