|
|
(111 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:
| + | |
− | <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.
| + | |