Difference between revisions of "GCat Service"
Luca.frosini (Talk | contribs) (→HTTP Methods) |
Luca.frosini (Talk | contribs) (→HTTP Methods) |
||
Line 27: | Line 27: | ||
The general usage pattern is | The general usage pattern is | ||
− | + | {| class="wikitable" | |
+ | ! Operation || HTTP Method || URL | ||
+ | |- | ||
+ | | List || GET || /{COLLECTION} | ||
+ | |- | ||
+ | | Create || POST || /{COLLECTION} | ||
+ | |- | ||
+ | | Read || GET || /{COLLECTION}/{INSTANCE_ID} | ||
+ | |- | ||
+ | | Update || PUT || /{COLLECTION}/{INSTANCE_ID} | ||
+ | |- | ||
+ | | Patch || PATCH || /{COLLECTION}/{INSTANCE_ID} | ||
+ | |- | ||
+ | | Delete || DELETE || /{COLLECTION}/{INSTANCE_ID} | ||
+ | |- | ||
+ | | Purge || PURGE || /{COLLECTION}/{INSTANCE_ID} | ||
+ | |- | ||
+ | | Purge || DELETE || /{COLLECTION}/{INSTANCE_ID}?purge=true | ||
+ | |} | ||
Revision as of 17:16, 29 November 2018
The gCube Science Catalogue Service is a RESTful web service based on the principles defined in gCube Catalogue
Contents
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
Science Catalogue uses standard HTTP Methods to perform a listing of collections and CRUD (Create Read Update Delete) operations on instances.
The general usage pattern is
Operation | HTTP Method | URL |
---|---|---|
List | GET | /{COLLECTION} |
Create | POST | /{COLLECTION} |
Read | GET | /{COLLECTION}/{INSTANCE_ID} |
Update | PUT | /{COLLECTION}/{INSTANCE_ID} |
Patch | PATCH | /{COLLECTION}/{INSTANCE_ID} |
Delete | DELETE | /{COLLECTION}/{INSTANCE_ID} |
Purge | PURGE | /{COLLECTION}/{INSTANCE_ID} |
Purge | DELETE | /{COLLECTION}/{INSTANCE_ID}?purge=true |
https://restfulapi.net/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 |