Project resources and representations » History » Version 6
Version 5 (Marc Dexet, 28/07/2017 11:02) → Version 6/7 (Guanji Wang, 28/07/2017 16:43)
h1. Project resources and representations
h2. Resources
h3. 1. Resources List:
* http://$HOST_DOMAIN/sitools/projects/{projectId}
* http://$HOST_DOMAIN/sitools/projects/{projectId}/start
* http://$HOST_DOMAIN/sitools/projects/{projectId}/stop
* http://$HOST_DOMAIN/sitools/projects/{projectId}/startmaintenance
* http://$HOST_DOMAIN/sitools/projects/{projectId}/stopmaintenance
* http://$HOST_DOMAIN/sitools/projects/{projectId}/graph
* http://$HOST_DOMAIN/sitools/projects/{projectId}/datasets
* http://$HOST_DOMAIN/sitools/projects/{projectId}/notify
* http://$HOST_DOMAIN/sitools/projects/{projectId}/graph/notify
* http://$HOST_DOMAIN/sitools/projects/
|_. URL |_.Verb|_.Description |_.Verb |_.Description |_. Code|_. Code |_. Response |_. Comments |
| /projects/{projectId} | GET | Retrieve all information of the project and its datasets project's dataset | 200 | All project's nodes and dataSets dataSet as JSON| |
| /projects/{projectId}/start | PUT | Activate the project {projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/stop | PUT | deactivate the project {projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/startmaintenance| PUT | Activate the project maintenance {projectId} | 200 | All project's node and dataSets dataSet as JSON| |
| /projects/{projectId}/stopmaintenance| PUT | deactivate the project maintenance{projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/graph| GET | Retrieve the information of the project graph {projectId} | 200 | The project graph ID and nodelist asJSON | |
| /projects/{projectId}/notify| PUT |Manage notification of project resources updating| 200 | OK|Response sent to indicate that handling occured |
| /projects/{projectId}/graph/notify| PUT |Manage notifications of graph resources updates| 200| OK|Response sent to indicate that handling occured|
| /projects| GET |Method to the list of all projects available in Sitools.| 200 | All projects' information as JSON| |
$HOST_DOMAIN = Starter.PUBLIC_HOST_DOMAIN
h3. 2. Methods:
* GET: Method to retrieve a single or all projects.
* PUT: Method to modify the current status of a project. (activate or deactivate)
* DELETE: Method to delete a single project by ID
* POST
h3. 3. Examples:
<pre><code class="python">
curl -u $username:$userpwd -X GET http://$HOST_DOMAIN/sitools/projects/$project_id
curl -u $username:$userpwd -X GET http://$localhost/sitools/projects/$project_id/graph
curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/stop
curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/start
</code></pre>
h3. 4. Response
h4. Headers
<pre><code class="javascript">
Content-Type: application/json; charset=UTF-8
Date: Fri, 28 Jul 2017 13:02:25 GMT
Accept-Ranges: bytes
Server: Restlet-Framework/2.0.5
Transfer-Encoding: chunked
</code></pre>
h4. Body:
<pre><code class="json">
{
"success": true,
"message": "project.stop.success",
"project": {
"id": "a8b7d16d-838e-432c-b712-f5702c1b2a39",
"name": "Medoc-Solar-Portal",
"description": "Solar datasets",
"image": {
"type": "Image",
"url": "/sitools/upload/soho_logo.gif",
"mediaType": "Image"
},
...
}
</code></pre>
h3. 4. PUT and POST
* POST: Used to modify and update a resource. It is idempotent(Do it as many times I want with the same result at last).
* PUT: Used to create a resource, or overwrite it. While you specify the resources new URL. It is not idempotent.
* POST can't be used for modifying the status of a project in Sitools.
h2. Representations
* JSON response output representation (application/json - )
Example:
<pre><code class="html">
http://idoc-medoc-test/project/solar?media=json
</code></pre>
Then all information about the project come, including all XML nodes infomation, name, description, datasets result block etc..
h2. Resources
h3. 1. Resources List:
* http://$HOST_DOMAIN/sitools/projects/{projectId}
* http://$HOST_DOMAIN/sitools/projects/{projectId}/start
* http://$HOST_DOMAIN/sitools/projects/{projectId}/stop
* http://$HOST_DOMAIN/sitools/projects/{projectId}/startmaintenance
* http://$HOST_DOMAIN/sitools/projects/{projectId}/stopmaintenance
* http://$HOST_DOMAIN/sitools/projects/{projectId}/graph
* http://$HOST_DOMAIN/sitools/projects/{projectId}/datasets
* http://$HOST_DOMAIN/sitools/projects/{projectId}/notify
* http://$HOST_DOMAIN/sitools/projects/{projectId}/graph/notify
* http://$HOST_DOMAIN/sitools/projects/
|_. URL |_.Verb|_.Description |_.Verb |_.Description |_. Code|_. Code |_. Response |_. Comments |
| /projects/{projectId} | GET | Retrieve all information of the project and its datasets project's dataset | 200 | All project's nodes and dataSets dataSet as JSON| |
| /projects/{projectId}/start | PUT | Activate the project {projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/stop | PUT | deactivate the project {projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/startmaintenance| PUT | Activate the project maintenance {projectId} | 200 | All project's node and dataSets dataSet as JSON| |
| /projects/{projectId}/stopmaintenance| PUT | deactivate the project maintenance{projectId} | 200 | All project's node and dataSets as JSON| |
| /projects/{projectId}/graph| GET | Retrieve the information of the project graph {projectId} | 200 | The project graph ID and nodelist asJSON | |
| /projects/{projectId}/notify| PUT |Manage notification of project resources updating| 200 | OK|Response sent to indicate that handling occured |
| /projects/{projectId}/graph/notify| PUT |Manage notifications of graph resources updates| 200| OK|Response sent to indicate that handling occured|
| /projects| GET |Method to the list of all projects available in Sitools.| 200 | All projects' information as JSON| |
$HOST_DOMAIN = Starter.PUBLIC_HOST_DOMAIN
h3. 2. Methods:
* GET: Method to retrieve a single or all projects.
* PUT: Method to modify the current status of a project. (activate or deactivate)
* DELETE: Method to delete a single project by ID
* POST
h3. 3. Examples:
<pre><code class="python">
curl -u $username:$userpwd -X GET http://$HOST_DOMAIN/sitools/projects/$project_id
curl -u $username:$userpwd -X GET http://$localhost/sitools/projects/$project_id/graph
curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/stop
curl -u $username:$userpwd -X PUT http://$HOST_DOMAIN/sitools/projects/$project_id/start
</code></pre>
h3. 4. Response
h4. Headers
<pre><code class="javascript">
Content-Type: application/json; charset=UTF-8
Date: Fri, 28 Jul 2017 13:02:25 GMT
Accept-Ranges: bytes
Server: Restlet-Framework/2.0.5
Transfer-Encoding: chunked
</code></pre>
h4. Body:
<pre><code class="json">
{
"success": true,
"message": "project.stop.success",
"project": {
"id": "a8b7d16d-838e-432c-b712-f5702c1b2a39",
"name": "Medoc-Solar-Portal",
"description": "Solar datasets",
"image": {
"type": "Image",
"url": "/sitools/upload/soho_logo.gif",
"mediaType": "Image"
},
...
}
</code></pre>
h3. 4. PUT and POST
* POST: Used to modify and update a resource. It is idempotent(Do it as many times I want with the same result at last).
* PUT: Used to create a resource, or overwrite it. While you specify the resources new URL. It is not idempotent.
* POST can't be used for modifying the status of a project in Sitools.
h2. Representations
* JSON response output representation (application/json - )
Example:
<pre><code class="html">
http://idoc-medoc-test/project/solar?media=json
</code></pre>
Then all information about the project come, including all XML nodes infomation, name, description, datasets result block etc..