1
0
mirror of https://github.com/oceanprotocol/docs.git synced 2024-11-26 19:49:26 +01:00
docs/developers/aquarius/asset-requests.md

8.4 KiB

Asset Requests

The universal Aquarius Endpoint is https://v4.aquarius.oceanprotocol.com.

Assets

Get /api/aquarius/assets/ddo/<did>

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

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 <did> not found in Elasticsearch."
    }
    

GET /api/aquarius/assets/metadata/<did>

Description

Get metadata 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/metadata/did:op:cd086344c275bc7c560e91d472be069a24921e73a2c3798fb2b8caadf8d245d6'

Javascript Example

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\":\"<did>\",\"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

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

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

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

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

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 '<json_body>'

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

curl --location --request POST 'https://v4.aquarius.oceanprotocol.com/api/aquarius/assets/triggerCaching' \
--header 'Content-Type: application/json' \
--data-raw '<json_body>'

Javascript Example

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