Project resources and representations » History » Version 6
Guanji Wang, 28/07/2017 16:43
| 1 | 1 | Guanji Wang | h1. Project resources and representations |
|---|---|---|---|
| 2 | 1 | Guanji Wang | |
| 3 | 1 | Guanji Wang | |
| 4 | 1 | Guanji Wang | h2. Resources |
| 5 | 1 | Guanji Wang | |
| 6 | 1 | Guanji Wang | h3. 1. Resources List: |
| 7 | 1 | Guanji Wang | |
| 8 | 6 | Guanji Wang | |_. URL |_.Verb|_.Description |_. Code|_. Response |_. Comments | |
| 9 | 6 | Guanji Wang | | /projects/{projectId} | GET | Retrieve all information of the project and its datasets | 200 | All project's nodes and dataSets as JSON| | |
| 10 | 6 | Guanji Wang | | /projects/{projectId}/start | PUT | Activate the project {projectId} | 200 | All project's node and dataSets as JSON| | |
| 11 | 6 | Guanji Wang | | /projects/{projectId}/stop | PUT | deactivate the project {projectId} | 200 | All project's node and dataSets as JSON| | |
| 12 | 6 | Guanji Wang | | /projects/{projectId}/startmaintenance| PUT | Activate the project maintenance {projectId} | 200 | All project's node and dataSets as JSON| | |
| 13 | 6 | Guanji Wang | | /projects/{projectId}/stopmaintenance| PUT | deactivate the project maintenance{projectId} | 200 | All project's node and dataSets as JSON| | |
| 14 | 6 | Guanji Wang | | /projects/{projectId}/graph| GET | Retrieve the information of the project graph {projectId} | 200 | The project graph ID and nodelist asJSON | | |
| 15 | 6 | Guanji Wang | | /projects/{projectId}/notify| PUT |Manage notification of project resources updating| 200 | OK|Response sent to indicate that handling occured | |
| 16 | 6 | Guanji Wang | | /projects/{projectId}/graph/notify| PUT |Manage notifications of graph resources updates| 200| OK|Response sent to indicate that handling occured| |
| 17 | 6 | Guanji Wang | | /projects| GET |Method to the list of all projects available in Sitools.| 200 | All projects' information as JSON| | |
| 18 | 1 | Guanji Wang | |
| 19 | 1 | Guanji Wang | |
| 20 | 1 | Guanji Wang | |
| 21 | 1 | Guanji Wang | h3. 2. Methods: |
| 22 | 1 | Guanji Wang | * GET: Method to retrieve a single or all projects. |
| 23 | 1 | Guanji Wang | * PUT: Method to modify the current status of a project. (activate or deactivate) |
| 24 | 1 | Guanji Wang | * DELETE: Method to delete a single project by ID |
| 25 | 1 | Guanji Wang | * POST |
| 26 | 1 | Guanji Wang | |
| 27 | 1 | Guanji Wang | |
| 28 | 1 | Guanji Wang | h3. 3. Examples: |
| 29 | 1 | Guanji Wang | |
| 30 | 1 | Guanji Wang | <pre><code class="python"> |
| 31 | 1 | Guanji Wang | curl -u $username:$userpwd -X GET http://$HOST_DOMAIN/sitools/projects/$project_id |
| 32 | 1 | Guanji Wang | curl -u $username:$userpwd -X GET http://$localhost/sitools/projects/$project_id/graph |
| 33 | 1 | Guanji Wang | curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/stop |
| 34 | 1 | Guanji Wang | curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/start |
| 35 | 1 | Guanji Wang | </code></pre> |
| 36 | 6 | Guanji Wang | |
| 37 | 6 | Guanji Wang | |
| 38 | 6 | Guanji Wang | h3. 4. Response |
| 39 | 6 | Guanji Wang | |
| 40 | 6 | Guanji Wang | h4. Headers |
| 41 | 6 | Guanji Wang | |
| 42 | 6 | Guanji Wang | |
| 43 | 6 | Guanji Wang | <pre><code class="javascript"> |
| 44 | 6 | Guanji Wang | Content-Type: application/json; charset=UTF-8 |
| 45 | 6 | Guanji Wang | Date: Fri, 28 Jul 2017 13:02:25 GMT |
| 46 | 6 | Guanji Wang | Accept-Ranges: bytes |
| 47 | 6 | Guanji Wang | Server: Restlet-Framework/2.0.5 |
| 48 | 6 | Guanji Wang | Transfer-Encoding: chunked |
| 49 | 6 | Guanji Wang | </code></pre> |
| 50 | 6 | Guanji Wang | |
| 51 | 6 | Guanji Wang | |
| 52 | 6 | Guanji Wang | |
| 53 | 6 | Guanji Wang | |
| 54 | 6 | Guanji Wang | |
| 55 | 6 | Guanji Wang | h4. Body: |
| 56 | 6 | Guanji Wang | |
| 57 | 6 | Guanji Wang | <pre><code class="json"> |
| 58 | 6 | Guanji Wang | { |
| 59 | 6 | Guanji Wang | "success": true, |
| 60 | 6 | Guanji Wang | "message": "project.stop.success", |
| 61 | 6 | Guanji Wang | "project": { |
| 62 | 6 | Guanji Wang | "id": "a8b7d16d-838e-432c-b712-f5702c1b2a39", |
| 63 | 6 | Guanji Wang | "name": "Medoc-Solar-Portal", |
| 64 | 6 | Guanji Wang | "description": "Solar datasets", |
| 65 | 6 | Guanji Wang | "image": { |
| 66 | 6 | Guanji Wang | "type": "Image", |
| 67 | 6 | Guanji Wang | "url": "/sitools/upload/soho_logo.gif", |
| 68 | 6 | Guanji Wang | "mediaType": "Image" |
| 69 | 6 | Guanji Wang | }, |
| 70 | 6 | Guanji Wang | ... |
| 71 | 6 | Guanji Wang | } |
| 72 | 6 | Guanji Wang | </code></pre> |
| 73 | 6 | Guanji Wang | |
| 74 | 1 | Guanji Wang | |
| 75 | 1 | Guanji Wang | h3. 4. PUT and POST |
| 76 | 1 | Guanji Wang | |
| 77 | 1 | Guanji Wang | * POST: Used to modify and update a resource. It is idempotent(Do it as many times I want with the same result at last). |
| 78 | 1 | Guanji Wang | * PUT: Used to create a resource, or overwrite it. While you specify the resources new URL. It is not idempotent. |
| 79 | 1 | Guanji Wang | * POST can't be used for modifying the status of a project in Sitools. |
| 80 | 1 | Guanji Wang | |
| 81 | 1 | Guanji Wang | |
| 82 | 1 | Guanji Wang | h2. Representations |
| 83 | 1 | Guanji Wang | |
| 84 | 1 | Guanji Wang | * JSON response output representation (application/json - ) |
| 85 | 1 | Guanji Wang | |
| 86 | 1 | Guanji Wang | |
| 87 | 1 | Guanji Wang | Example: |
| 88 | 1 | Guanji Wang | <pre><code class="html"> |
| 89 | 1 | Guanji Wang | http://idoc-medoc-test/project/solar?media=json |
| 90 | 1 | Guanji Wang | </code></pre> |
| 91 | 1 | Guanji Wang | Then all information about the project come, including all XML nodes infomation, name, description, datasets result block etc.. |