1.1.0 • Published 5 months ago
koios-tiny-client v1.1.0
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
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