Difference between revisions of "Home Library REST API"
From Gcube Wiki
(→List) |
(→List) |
||
Line 61: | Line 61: | ||
Output: | Output: | ||
A list of entries with: | A list of entries with: | ||
− | * name: the name of the file/folder; | + | * '''name''': the name of the file/folder; |
− | * flag: true if the item is a folder, false if it is a file. | + | * '''flag''': true if the item is a folder, false if it is a file. |
<source lang="xml"> | <source lang="xml"> |
Revision as of 17:18, 26 October 2016
Contents
Overview
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:
HL_webapp/rest/CreateFolder?name=$name&description=$desc&parentPath=$path
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:
HL_webapp/rest/CreateFolder?name=myFolder&description=myDescription&parentPath=/Home/valentina.marioli/Workspace/MyDocs/
List
To list the content of a folder:
HL_webapp/rest/List?absPath=$path
Where:
- absPath: the absolute path of the folder to list.
Example:
HL_webapp/rest/List?absPath=/Home/valentina.marioli/Workspace/MySpecialFolders/gcube-devNext-NextNext/
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.
<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>
Upload File
To upload a file, if it does not already exist:
HL_webapp/rest/Upload?name=$name&description=$description&parentPath=$path
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:
HL_webapp/rest/Upload?name=$name&description=$description&parentPath=$path&mimetype=$mimetype&size=$size
You have to attach the file as mutipart content of your request.
Delete File or folder
To remove a file or a folder:
HL_webapp/rest/Delete?absPath=$path
Where:
- absPath: the absolute path of the file/folder to remove.
Output:
- true: if the file/folder has been correctly removed;
- false: otherwise.