diff --git a/developers/APIs/README.md b/developers/APIs/README.md deleted file mode 100644 index 56ecb400..00000000 --- a/developers/APIs/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# APIs - diff --git a/developers/aquarius/README.md b/developers/aquarius/README.md index 4a05a31b..a9e9a9b3 100644 --- a/developers/aquarius/README.md +++ b/developers/aquarius/README.md @@ -1,2 +1,7 @@ # Aquarius + + +### Postman documentation + +Click [here](https://documenter.getpostman.com/view/2151723/UVkmQc7r) to explore the documentation and more examples in postman. diff --git a/developers/aquarius/asset-requests.md b/developers/aquarius/asset-requests.md index 4b853435..bad2db8b 100644 --- a/developers/aquarius/asset-requests.md +++ b/developers/aquarius/asset-requests.md @@ -1,2 +1,340 @@ # Asset Requests +The universal Aquarius Endpoint is [`https://v4.aquarius.oceanprotocol.com`](https://v4.aquarius.oceanprotocol.com). + + +## Assets + +### **Get** `/api/aquarius/assets/ddo/` + +#### Description + +Get DDO of a particular asset. + +#### Parameters + +| name | description | type | in | required | +| ----- | ---------------- | ------ | ---- | -------- | +| `did` | DID of the asset | string | path | true | + +#### Curl Example + +``` +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') +const did = 'did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b' +const response = await axios(`https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/ddo/${did}`) +console.log(response.status) +console.log(response.data.nftAddress) +console.log(response.data.metadata.name) +console.log(response.data.metadata.description) + +``` + +#### Responses + +`200` + +* content-type: json +* description: On successful operation returns DDO information. + +`404` + +* content-type: json +* description: This asset DID is not in ES. +* response body: + + ``` + { + "error": "Asset DID not found in Elasticsearch." + } + ``` + +### **GET** `/api/aquarius/assets/metadata/` + +#### Description + +Get metadata of a particular asset. + +#### Parameters + +| name | description | type | in | required | +| ----- | ---------------- | ------ | ---- | -------- | +| `did` | DID of the asset | string | path | true | + +#### Curl Example + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/metadata/did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') +const did = 'did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b' +const response = await axios(`https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/metadata/${did}`) +console.log(response.status) +console.log(response.data.name) +console.log(response.data.description) + +``` + +#### Responses + +`200` + +* content-type: json +* description: successful operation. + +`404` + +* content-type: json +* description: This asset DID is not in ES. +* response body: + + ``` + { + "error": "Error encountered while retrieving metadata: NotFoundError(404, '{\"_index\":\"aquarius\",\"_type\":\"_doc\",\"_id\":\"\",\"found\":false}')." + } + ``` + +### **POST** `/api/aquarius/assets/names` + +#### Description + +Get names of assets as specified in the payload. + +#### Parameters + +| name | description | type | in | required | +| --------- | ------------------ | ---- | ---- | -------- | +| `didList` | list of asset DIDs | list | body | true | + +#### Curl Example + +```bash +curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/names' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "didList" : ["did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6"] +}' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const body = {didList : ["did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6", "did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b"]} + +const response = await axios.post('https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/names', body) +console.log(response.status) +for (let key in response.data) { + console.log(key + ': ' + response.data[key]); +} + +``` + +#### Responses + +`200` + +* content-type: json +* description: successful operation. +* response body: + + ``` + {"did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6": "Ocean CEX Aggregator: OHLC history for OCEAN/USDT "} + ``` + +`400` + +* content-type: json +* description: This asset DID is not in ES. +* response body: + + ``` + { + "error": "The requested didList can not be empty." + } + ``` + +### **POST** `/api/aquarius/assets/query` + +#### **Description** + +Run a native ES query. Body must be a valid json object. + +#### Curl Example + +```bash +curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/query' \ +--header 'Content-Type: application/json' \ +--data-raw '{ + "query": { + "match_all": {} + } +}' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const body = { "query": { "match_all": { } } } + + +const response = await axios.post('https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/query', body) +console.log(response.status) +console.log(response.data.hits.hits[0]) +for (const value of response.data.hits.hits) { + console.log(value); +} + +``` + +#### Responses + +`200` + +* content-type: json + +`500` + +* description: elasticsearch exception + +### **POST** `/api/aquarius/assets/ddo/validate` + +#### Description + +Validate DDO content. Cosumes `application/octet-stream` + +#### Curl Example + +```bash +curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/query/api/v1/aquarius/assets/ddo/validate' \ +--header 'Content-Type: application/json' \ +--data-raw '' +``` + +#### Javascript Example + +{% embed url="https://runkit.com/oceanprotocol/646b68e10611080008c6a640" %} + +#### Valid body + +``` + { + "@context": ["https://w3id.org/did/v1"], + "id": "did:op:56c3d0ac76c02cc5cec98993be2b23c8a681800c08f2ff77d40c895907517280", + "version": "4.1.0", + "chainId": 1337, + "nftAddress": "0xabc", + "metadata": { + "created": "2000-10-31T01:30:00.000-05:00Z", + "updated": "2000-10-31T01:30:00.000-05:00", + "name": "Ocean protocol white paper", + "type": "dataset", + "description": "Ocean protocol white paper -- description", + "author": "Ocean Protocol Foundation Ltd.", + "license": "CC-BY", + "contentLanguage": "en-US", + "tags": ["white-papers"], + "additionalInformation": {"test-key": "test-value"}, + "links": [ + "http://data.ceda.ac.uk/badc/ukcp09/data/gridded-land-obs/gridded-land-obs-daily/", + "http://data.ceda.ac.uk/badc/ukcp09/data/gridded-land-obs/gridded-land-obs-averages-25km/", + "http://data.ceda.ac.uk/badc/ukcp09/" + ] + }, + "services": [ + { + "id": "test", + "type": "access", + "datatokenAddress": "0xC7EC1970B09224B317c52d92f37F5e1E4fF6B687", + "name": "Download service", + "description": "Download service", + "serviceEndpoint": "http://172.15.0.4:8030/", + "timeout": 0, + "files": "encryptedFiles" + } + ] + } +``` + +#### Responses: + +`200` + +Successfull request. + +`400` + +Invalid DDO format + +`500` + +Error + +### **POST** `/api/aquarius/assets/triggerCaching` + +#### Description + +Manually triggers DDO caching based on a `transacionId` containing either MetadataCreated or MetadataUpdated event(s). + +#### Parameters + +| name | description | type | in | required | +| --------------- | ------------------------------------ | ------ | ---- | -------- | +| `transactionId` | DID of the asset | string | path | true | +| `logIndex` | custom log index for the transaction | int | path | false | + +#### Curl Example + +```bash +curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/triggerCaching' \ +--header 'Content-Type: application/json' \ +--data-raw '' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const body = { "transactionId": "0x945596edf2a26d127514a78ed94fea86b199e68e9bed8b6f6d6c8bb24e451f27", "logIndex": 0} +const response = await axios.post( 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/triggerCaching', body) +console.log(response.status) +console.log(response.data) + +``` + +#### Valid body + +``` + { + "transactionId": "0x945596edf2a26d127514a78ed94fea86b199e68e9bed8b6f6d6c8bb24e451f27", + "logIndex": 0 + } +``` + +#### Responses: + +`200` + +Description: triggering successful, updated asset returned + +`400` + +Description: request issues: either log index not found, or neither of MetadataCreated, MetadataUpdated found in tx log + +`500` + +Description: Error \ No newline at end of file diff --git a/developers/aquarius/chain-requests.md b/developers/aquarius/chain-requests.md index 21d38a54..d8e4e553 100644 --- a/developers/aquarius/chain-requests.md +++ b/developers/aquarius/chain-requests.md @@ -1,2 +1,81 @@ # Chain Requests + +The universal Aquarius Endpoint is [`https://v4.aquarius.oceanprotocol.com`](https://v4.aquarius.oceanprotocol.com). + + +## Chains + +### **GET** `/api/aquarius/chains/list` + +#### Description + +Get chains list + +#### Curl Example + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquarius/chains/list' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const response = await axios( 'https://v4.aquarius.oceanprotocol.com/api/aquarius/chains/list') +console.log(response.status) +console.log(response.data) + +``` + +#### Response + +`200` + +Description: Successful request + +Body: + +``` +{ "246": true, "3": true, "137": true, + "2021000": true, "4": true, "1": true, + "56": true, "80001": true, "1287": true +} +``` + +### **GET** `/api/aquarius/chains/status/{chain_id}` + +#### Description + +Get index status for a specific chain\_id + +#### Curl Example + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/api/aquarius/chains/status/137' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') +const chainId = 1 + +const response = await axios( `https://v4.aquarius.oceanprotocol.com/api/aquarius/chains/status/${chainId}`) +console.log(response.status) +console.log(response.data) + +``` + +#### Response + +`200` + +Description: Successful request + +Body: + +``` +{"last_block": 25198729} +``` diff --git a/developers/aquarius/other-requests.md b/developers/aquarius/other-requests.md index 0d30c951..2d5aa9d1 100644 --- a/developers/aquarius/other-requests.md +++ b/developers/aquarius/other-requests.md @@ -1,2 +1,107 @@ # Other Requests +The universal Aquarius Endpoint is [`https://v4.aquarius.oceanprotocol.com`](https://v4.aquarius.oceanprotocol.com). +## Others + +### **GET** `/` + +#### Description + +Get version, plugin, and software information. + +#### Curl Example + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const response = await axios( 'https://v4.aquarius.oceanprotocol.com/') +console.log(response.status) +console.log(response.data) + +``` + +#### Response + +`200` + +Description: Successful request + +Body: + +``` +{ + "plugin": "elasticsearch", + "software": "Aquarius", + "version": "4.2.0" +} +``` + +### **GET** `/health` + +**Description** + +Get health status + +**Curl Example** + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/health' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const response = await axios( 'https://v4.aquarius.oceanprotocol.com/health') +console.log(response.status) +console.log(response.data) + +``` + +**Response** + +`200` + +Description: Successful request + +Body: + +``` +Elasticsearch connected +``` + +### **GET** /spec + +#### Description + +Get swagger spec + +#### Example + +```bash +curl --location --request GET 'https://v4.aquarius.oceanprotocol.com/spec' +``` + +#### Javascript Example + +```runkit nodeVersion="18.x.x" +const axios = require('axios') + +const response = await axios( 'https://v4.aquarius.oceanprotocol.com/spec') +console.log(response.status) +console.log(response.data.info) + +``` + +#### Response + +`200` + +Successful request \ No newline at end of file