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 |