1.1.0 • Published 5 months ago

koios-tiny-client v1.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

Automatically generated Axios-based client for Koios Cardano RESTful API based on koiosapi.yaml schema. Works great with raygraph-output (a dockered Koios-based & DB Sync Cardano API solution extended by Postgraphile) and the original Koios. Visit RayGraph.io for more information.

Installation

To install the client with Yarn, run:

yarn install koios-tiny-client

To install the client with NPM, run:

npm i koios-tiny-client

Usage

Request Types Response Types

import KoiosTinyClient from "koios-tiny-client"

const { client, methods: Koios } = new KoiosTinyClient("https://api.koios.rest/api/v0")

// async call
const app = async () => {
  const Tip = await Koios.Tip()
  if (Tip.success) {
    console.log(Tip.success.data[0].block_no)
  }
  if (Tip.error) {
    console.error(Tip.error)
  }
}

app()

Advanced Usage

const { methods: Koios } = new KoiosTinyClient("https://api.koios.rest/api/v0")

// simple offset limit
const Blocks = await Koios.Blocks("&offset=10&limit=5")
console.log(Blocks)

// advanced pagination
const headers = { Prefer: "count=estimated" } // get the exact "content-range" header in the request
const PoolListFirst5Items = await Koios.PoolList("&limit=5", headers)
if (PoolListFirst5Items.success) {
  const contentRange = PoolListFirst5Items.success.headers?.["content-range"] || ""
  const [currentPosition, totalItems] = contentRange.split('/')
  const queryRange = `${Number(totalItems) - 5}-${Number(totalItems)}`
  const PoolListLast5Items = await Koios.PoolList(undefined, { ...headers, Range: queryRange})
  console.log(PoolListLast5Items)
}
const { client, methods: Koios } = new KoiosTinyClient("https://api.koios.rest/api/v0")

// your response interceptor, used as default shown in the example below
client.interceptors.response.use(
  (response: AxiosResponse): any => {
    return {
      success: response,
    }
  },
  (error: AxiosError): { error: AxiosError } => {
    return {
      error,
    }
  }
)

// your request interceptor
client.interceptors.request.use(
  // ...
)
const { methods: Koios } = new KoiosTinyClient("https://api.koios.rest/api/v0")

const abortController = new AbortController()
setTimeout(() => {
  abortController.abort() // cancel request
  console.log('Aborted!')
}, 200)
const PoolList = await Koios.PoolList(undefined, undefined, abortController.signal)
import KoiosTinyClient, { KoiosTypes } from "koios-tiny-client"

// no error
const correctItem: KoiosTypes.IAssetTokenRegistry = {
  policy_id: "somePolidyId",
  asset_name: "someAssetNameOrNull",
  asset_name_ascii: "someAsciiName",
  ticker: "someTicker",
  description: "someDescription",
  url: "someUrl",
  decimals: 6,
  logo: "someBase64PngString"
}

// error
const wrongItem: KoiosTypes.IAssetTokenRegistry = {
  policy_id: "somePolidyId",
}

API URLs

Managed by Cardano Community (Koios Elastic Query Layer / HAproxy Balancer)

https://api.koios.rest/api/v0
https://preprod.koios.rest/api/v0
https://preview.koios.rest/api/v0
https://guild.koios.rest/api/v0

Managed by Ray Network (RayGraph-Output Cluster / Cloudflare WAF & Load Balancer)

https://mainnet.blockchain.raygraph.io
https://preprod.blockchain.raygraph.io
https://preview.blockchain.raygraph.io

Methods

Use the https://api.koios.rest/ sandbox to explore and live query all available API methods

Code Generation & Build

Downloads the YAML schema and generates library methods and types

yarn codegen && yarn build
1.1.0

5 months ago

1.1010.1

11 months ago

1.1010.0

11 months ago

1.0.100

12 months ago

1.0.10

12 months ago