Difference between revisions of "Home Library REST API"

From Gcube Wiki
Jump to: navigation, search
(List)
(Replaced content with "== The Home Library has been deprecated by the new [https://wiki.gcube-system.org/gcube/StorageHub_REST_API StorageHub Service] == Please use the StorageHub service for fu...")
 
(109 intermediate revisions by 6 users not shown)
Line 1: Line 1:
= Overview =
+
== The Home Library has been deprecated by the new [https://wiki.gcube-system.org/gcube/StorageHub_REST_API StorageHub Service] ==
 
+
Please use the StorageHub service for future developments: https://wiki.gcube-system.org/gcube/StorageHub_REST_API
The Home Library REST interface provides a simple access to basic HL features.
+
 
+
= Key features =
+
Users can use the token to access to REST interface. They can access just their own files and the folders shared with them.
+
 
+
'''Home Library REST interface''' supports the following operations:
+
* '''Create Folder''': to create a folder in the given parent path;
+
* '''List''': to list the content of a folder;
+
* '''Upload file''': to upload a file in a folder;
+
* '''Remove files and folders''': to remove a file or a folder (including subfolders).
+
 
+
= Use cases =
+
Users can:
+
*use the browser to call API Methods, using username and his/her token as password;
+
*implement a Client in different languages, setting the token on the header of the request.
+
 
+
= Design =
+
 
+
== Architecture ==
+
 
+
== API ==
+
=== Get started ===
+
Home Library REST is available from gCube 4.1.
+
*HL_webapp next: https://workspace-repository-dev.research-infrastructures.eu/home-library-webapp
+
*HL_webapp preProd: http://ws-repo-test.d4science.org/home-library-webapp
+
 
+
=== Create Folder ===
+
 
+
To create a new folder:
+
<source lang="java">
+
HL_webapp/rest/CreateFolder?name=$name&description=$desc&parentPath=$path
+
</source>
+
 
+
Where:
+
* '''name''': the name of the new folder.
+
* '''description''': the description for the new folder.
+
* '''parentPath''': the position where you want to save the folder.
+
 
+
Example:
+
 
+
<source lang="java">
+
HL_webapp/rest/CreateFolder?name=myFolder&description=myDescription&parentPath=/Home/valentina.marioli/Workspace/MyDocs/
+
</source>
+
 
+
=== List ===
+
To list the content of a folder:
+
<source lang="java">
+
HL_webapp/rest/List?absPath=$path
+
</source>
+
 
+
Where:
+
* '''absPath''': the absolute path of the folder to list.
+
 
+
Example:
+
 
+
<source lang="java">
+
HL_webapp/rest/List?absPath=/Home/valentina.marioli/Workspace/MySpecialFolders/gcube-devNext-NextNext/
+
</source>
+
Output:
+
A list of entries with:
+
* name: the name of the file/folder;
+
* flag: true if the item is a folder, false if it is a file.
+
 
+
<source lang="xml">
+
<map>
+
  <entry>
+
    <string>BlueBRIDGE_QER_M13-15_Q5_Template(2).xlsx</string>
+
    <boolean>false</boolean>
+
  </entry>
+
  <entry>
+
    <string>myFolder</string>
+
    <boolean>true</boolean>
+
  </entry>
+
  <entry>
+
    <string>home-library-jcr-2.5.0-SNAPSHOT.jar</string>
+
    <boolean>false</boolean>
+
  </entry>
+
  <entry>
+
    <string>aaa</string>
+
    <boolean>true</boolean>
+
  </entry>
+
  <entry>
+
    <string>BlueBRIDGE_QER_M13-15_Q5_Template.xlsx</string>
+
    <boolean>false</boolean>
+
  </entry>
+
  <entry>
+
    <string>BlueBRIDGE_QER_M13-15_Q5_Template(1).xlsx</string>
+
    <boolean>false</boolean>
+
  </entry>
+
</map>
+
</source>
+
 
+
=== Upload File ===
+
 
+
To upload a file, if it does not already exist:
+
<source lang="java">
+
HL_webapp/rest/Upload?name=$name&description=$description&parentPath=$path
+
</source>
+
 
+
Where:
+
* '''name''': the file to upload
+
* '''description''': a description for the file
+
* '''parentPath''': the position where you want to save the file.
+
 
+
If you want to skip mimetype and size detect steps because you already know them, you can pass them as parameter:
+
<source lang="java">
+
HL_webapp/rest/Upload?name=$name&description=$description&parentPath=$path&mimetype=$mimetype&size=$size
+
</source>
+
 
+
You have to attach the file as mutipart content of your request.
+
 
+
=== Delete File or folder ===
+
 
+
To remove a file or a folder:
+
<source lang="java">
+
HL_webapp/rest/Delete?absPath=$path
+
</source>
+
 
+
Where:
+
* '''absPath''': the absolute path of the file/folder to remove.
+
 
+
Output:
+
* '''true''': if the file/folder has been correctly removed;
+
* '''false''': otherwise.
+

Latest revision as of 10:53, 18 January 2019

The Home Library has been deprecated by the new StorageHub Service

Please use the StorageHub service for future developments: https://wiki.gcube-system.org/gcube/StorageHub_REST_API