|
|
# Features to have:
|
|
|
|
|
|
1. Effective bulk operations: with http v2, will require httpv2 development for HED, this feature can be postponed
|
|
|
2. Support for versioning: via url paths like https://arc.zero:443/arex/rest/v1.0/info
|
|
|
2. Support for versioning: via url paths like https://arc.zero:443/arex/rest/1.0/jobs
|
|
|
3. Usable with simple tools (wget, curl)
|
|
|
4. Accessible through Web Browser: not the most important
|
|
|
5. Friendly to common HTTP REST frameworks
|
|
|
6. Interactive support to session directory (with proper protection and WebDAV basic support)
|
|
|
6. Interactive support to session directory (with proper protection and WebDAV basic support later)
|
|
|
7. Machine readable error/result codes/messages
|
|
|
8. Re-use of existing software modules (no drastic changes to information representation and jobs handling)
|
|
|
9. support different response formats: html, xml and later json
|
|
|
9. support different response formats: html, xml, json
|
|
|
|
|
|
|
|
|
# Description of supported operations.
|
... | ... | @@ -18,7 +18,7 @@ The various functionalities of the service are accessible through HTTP(S) URL bu |
|
|
\<service endpoint URL\>/rest/\<version\>/\<functionality\>
|
|
|
|
|
|
Here \<service endpoint URL\> represents mounting point of the service and may look like https://host.domain.org:443/arex .
|
|
|
The \<version\> is two parts number separated by '.' prefixed with 'v;. Current version is "v1.0".
|
|
|
The \<version\> is two parts number separated by '.'. Current version is "1.0".
|
|
|
The \<functionality\> is one of keywords defined below.
|
|
|
|
|
|
Further the part \<service endpoint URL\>/rest/\<version\> is referred as \<base\>.
|
... | ... | @@ -27,7 +27,22 @@ All parts of URL are case-sensitive. |
|
|
|
|
|
GET with "Accept: text/html" on each resource returns HTML with some useful information for web browser compatibility.
|
|
|
|
|
|
Consider GET on \<service endpoint URL\>/rest return list of supported versions?
|
|
|
GET on \<service endpoint URL\>/rest returns list of supported versions. The XML response is like:
|
|
|
<pre>
|
|
|
<versions>
|
|
|
<version>0.1</version>
|
|
|
<version>0.2</version>
|
|
|
<version>0.3</version>
|
|
|
</versions>
|
|
|
</pre>
|
|
|
The JSON is:
|
|
|
<pre>
|
|
|
{
|
|
|
"version":"0.1",
|
|
|
"version":"0.2",
|
|
|
"version":"0.3"
|
|
|
}
|
|
|
</pre>
|
|
|
|
|
|
|
|
|
## Functionality as resource.
|
... | ... | |