Difference between revisions of "GCat Service"

From Gcube Wiki
Jump to: navigation, search
(URL)
(Request)
Line 17: Line 17:
 
To dynamically discover the Base Service URL please use the information system.
 
To dynamically discover the Base Service URL please use the information system.
  
You need to discover gCore Resource having  
+
You need to discover gCore Resource having:
 
* '''class''' : ''DataCatalogue''
 
* '''class''' : ''DataCatalogue''
 
* '''name''' : ''science-catalogue''
 
* '''name''' : ''science-catalogue''
  
 
=== HTTP Methods ===
 
=== HTTP Methods ===
 +
  
  
Line 28: Line 29:
  
 
=== HTTP Statuses ===
 
=== HTTP Statuses ===
 
  
 
== Collections ==
 
== Collections ==

Revision as of 18:11, 29 November 2018

The gCube Science Catalogue Service is a RESTful web service based on the principles defined in gCube Catalogue

Request

URL

The URL used to interact with the Science Catalogue Service is composed of two parts:

  • Base Service URL (e.g. https:/catalogue.d4science.org/science-catalogue)
  • Specific API (e.g. /organizations)

D4Science infrastructure uses cloud facilities allowing to replicate a service to achieve failover and load balancing.

Science Catalogue Service instances can be deployed and undeployed dynamically. For such a reason the Base Service URL MUST NOT be hard-cabled in the code because it can change over time.

To dynamically discover the Base Service URL please use the information system.

You need to discover gCore Resource having:

  • class : DataCatalogue
  • name : science-catalogue

HTTP Methods

HTTP Headers

HTTP Statuses

Collections

Group Collection

Operation HTTP Method URL
List GET /groups
Create POST /groups
Read GET /groups/{NAME}
Update PUT /groups/{NAME}
Patch PATCH /groups/{NAME}
Delete DELETE /groups/{NAME}
Purge PURGE /groups/{NAME}
Purge DELETE /groups/{NAME}?purge=true

Item Collection

Operation HTTP Method URL
List GET /items
Create POST /items
Read GET /items/{NAME}
Update PUT /items/{NAME}
Delete DELETE /items/{NAME}
Purge PURGE /items/{NAME}
Purge DELETE /items/{NAME}?purge=true

Resource Collection

Operation HTTP Method URL
List GET /items/{NAME}/resources
Create POST /items/{NAME}/resources
Read GET /items/{NAME}/resources/{ID}
Update PUT /items/{NAME}/resources/{ID}
Delete DELETE /items/{NAME}/resources/{ID}

License Collection

Operation HTTP Method URL
List GET /licenses

Organization Collection

Operation HTTP Method URL
List GET /organizations
Create POST /organizations
Read GET /organizations/{NAME}
Update PUT /organizations/{NAME}
Patch PATCH /organizations/{NAME}
Delete DELETE /organizations/{NAME}
Purge PURGE /organizations/{NAME}
Purge DELETE /organizations/{NAME}?purge=true

User Collection

Operation HTTP Method URL
List GET /users
Create POST /users
Read GET /users/{NAME}
Update PUT /users/{NAME}
Delete DELETE /users/{NAME}

Profile Collection

Operation HTTP Method URL
List GET /profiles
Read GET /profiles/{NAME}

A profile is defined using XML. It is possible to get the original XML definition using 'Accept' HTTP Header.

Accept : application/xml

instead of

Accept : application/json

Namespace Collection

Operation HTTP Method URL
List GET /namespaces