@nemtus/symbol-rest-api-client-axios
v1.0.1
Published
Symbol REST API client for TypeScript (OpenAPI Generator typescript-axios)
Downloads
268
Readme
@nemtus/symbol-rest-api-client-axios
Symbol REST API client for TypeScript, generated with OpenAPI Generator (typescript-axios). Ships axios as a runtime dependency.
Part of the nemtus/symbol-rest-api-client monorepo (this package lives in clients/typescript-axios). The sister package @nemtus/symbol-rest-api-client-fetch provides a dependency-free, native-fetch variant.
Formerly published as
@nemtus/symbol-sdk-openapi-generator-typescript-axios(now deprecated). This client targets the@nemtus/symbol-openapispec1.0.5.
Note: Currently, This is a very experimental level.
| Type | Status/Link |
| --------- | -------------------- |
| CI status | |
| Latest npm publish status |
|
| npm package link | https://www.npmjs.com/package/@nemtus/symbol-rest-api-client-axios |
For package users
Install
npm install @nemtus/symbol-rest-api-client-axiosUsage
Example with no requestParameters
import {
Configuration,
ConfigurationParameters,
NodeInfoDTO,
NodeRoutesApi,
} from '@nemtus/symbol-rest-api-client-axios';
const configurationParameters: ConfigurationParameters = {
basePath: 'https://symbol-sakura-16.next-web-technology.com:3001',
};
const configuration: Configuration = new Configuration(configurationParameters);
const nodeRoutesApi: NodeRoutesApi = new NodeRoutesApi(configuration);
const response = await nodeRoutesApi.getNodeInfo();
const nodeInfoDTO: NodeInfoDTO = response.data;
console.log(response.status); // Example: 200
console.log(response.statusText); // Example: 'OK'
console.dir(nodeInfoDTO, { depth: null });
/* Example:
{
version: 16777987,
publicKey: 'B86304B01045894ED9250B3DCD6313DC2EC0DD529B4E864EA376A2F341D3CFD4',
networkGenerationHashSeed: '57F7DA205008026C776CB6AED843393F04CD458E0AA2D9F1D5F31A402072B2D6',
roles: 3,
port: 7900,
networkIdentifier: 104,
host: 'symbol-sakura-16.next-web-technology.com',
friendlyName: 'next-web-technology',
nodePublicKey: '9545F928A1B2FB4AC944BC1EC2F01FB84A503F6449B6BE3451B3F7A0F06B5BCF'
}
*/Example with requestParameters
import {
AccountInfoDTO,
AccountRoutesApi,
AccountRoutesApiGetAccountInfoRequest,
Configuration,
ConfigurationParameters,
} from '@nemtus/symbol-rest-api-client-axios';
const configurationParameters: ConfigurationParameters = {
basePath: 'https://symbol-sakura-16.next-web-technology.com:3001',
};
const configuration: Configuration = new Configuration(configurationParameters);
const accountRoutesApi: AccountRoutesApi = new AccountRoutesApi(configuration);
const requestParameters: AccountRoutesApiGetAccountInfoRequest = {
accountId: 'NCSIOEWE2364XXP65426W3RUGBRYOAGR3KMMCIA',
};
const response = await accountRoutesApi.getAccountInfo(requestParameters);
const accountInfoDTO: AccountInfoDTO = response.data;
console.log(response.status); // Example: 200
console.log(response.statusText); // Example: "OK"
console.dir(accountInfoDTO, { depth: null });
// Example:
/*
{
account: {
version: 1,
address: '68A48712C4D6FDCBDDFEEF35EB6E3430638700D1DA98C120',
addressHeight: '1',
publicKey: 'B86304B01045894ED9250B3DCD6313DC2EC0DD529B4E864EA376A2F341D3CFD4',
publicKeyHeight: '447',
accountType: 1,
supplementalPublicKeys: {
linked: {
publicKey: '5F87A37D1EAD570F4D0FD4C11A9D5EED5ABE82EF2E992B97CCDAC84F241470E0'
},
vrf: {
publicKey: '806E9448598C922B371DA8CFD7E16E8F5F53594B3AECE13F0708778A4480A752'
}
},
activityBuckets: [
{
startHeight: '1447200',
totalFeesPaid: '0',
beneficiaryCount: 0,
rawScore: '476538883720'
},
{
startHeight: '1446480',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476509686441'
},
{
startHeight: '1445760',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476481049034'
},
{
startHeight: '1445040',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476353869759'
},
{
startHeight: '1444320',
totalFeesPaid: '0',
beneficiaryCount: 1,
rawScore: '476325431930'
}
],
mosaics: [
{ id: '6BED913FA20223F8', amount: '516203401572' },
{ id: '24F7CF825DBCDD42', amount: '499999886' },
{ id: '310378C18A140D1B', amount: '923' },
{ id: '6AE25FA5E8CA0646', amount: '1000000000' }
],
importance: '476509686441',
importanceHeight: '1447200'
},
id: '60517BE5CCA17918A561056D'
}
*/Example with CDN
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- Load from CDN or a single file bundled with webpack -->
<script src="https://cdn.jsdelivr.net/npm/@nemtus/[email protected]/index.min.js"></script>
</head>
<body>
<script>
(async () => {
const symbolSdk = window.symbolSdkOpenAPIGeneratorTypeScriptAxios;
const configurationParameters = {
basePath: 'http://symbol-sakura-16.next-web-technology.com:3000',
};
const configuration = new symbolSdk.Configuration(configurationParameters);
const nodeRoutesApi = new symbolSdk.NodeRoutesApi(configuration);
const responseNodeInfo = await nodeRoutesApi.getNodeInfo();
console.log(responseNodeInfo.status);
console.log(responseNodeInfo.statusText);
console.log(responseNodeInfo.data);
const accountRoutesApi = new symbolSdk.AccountRoutesApi(configuration);
const requestParameters = {
accountId: 'NCSIOEWE2364XXP65426W3RUGBRYOAGR3KMMCIA',
};
const responseAccountInfo = await accountRoutesApi.getAccountInfo(requestParameters);
console.log(responseAccountInfo.status);
console.log(responseAccountInfo.statusText);
console.log(responseAccountInfo.data);
})();
</script>
</body>
</html>For Package Developers
0. Prerequisite
- Clone the monorepo and change into this client's directory
git clone https://github.com/nemtus/symbol-rest-api-client.git
cd symbol-rest-api-client/clients/typescript-axiosAll commands below are run from this client directory (clients/typescript-axios); there is no root package.json.
- Install Java
If you don't have java installed, you need to install it (required by the OpenAPI Generator).
1. Install the OpenAPI spec
This project consumes the OpenAPI spec from the @nemtus/symbol-openapi
npm package — built and published from the nemtus/symbol fork (a mirror of
upstream symbol/symbol, whose openapi/ directory is the source of truth).
It is a version-pinned devDependency, so npm ci installs it and the package-lock.json integrity hash verifies
it. (The former symbol/symbol-openapi release repo was archived in 2026; before that this spec was built locally
from a git submodule, which pulled in vulnerable build tooling.)
npm ciThis makes the spec available at node_modules/@nemtus/symbol-openapi/openapi3.yml. To bump the spec version, bump
the @nemtus/symbol-openapi devDependency in package.json (and the lockfile).
2. Generate REST API Client Code
npm run openapi:set:version
npm run openapi:generate
npm run buildThen, REST API client code will be generated in src/api and bundled into dist.
Do not edit src/api manually.
3. Release
Releasing is a single action — bump the version, create the vX.Y.Z tag, and push it, which triggers the
tag-driven CD workflow (npm publish via OIDC Trusted Publishing, gated by the npm-production Environment):
npm run release:minor # or release:patch / release:major4. Tests
# Deterministic unit tests (mocked axios adapter, no network)
npm run test
# Consumer / live-node tests (build the root first; each is a separate npm project)
cd tests/nodejs-javascript && npm ci && npm test
cd tests/nodejs-typescript && npm ci && npm test
cd tests/browser-cdn && npm ci && npx playwright install chromium && npm run testSecurity
axios is a runtime dependency of this package, so it (and its transitive tree) is shipped to consumers. The
safe version floor and transitive overrides (form-data, follow-redirects) are pinned in the root
package.json; CI gates every install with npm audit --package-lock-only (prod + dev, fails on any severity)
and additionally fails the gating job if the resolved axios drops below the known-CVE-free floor. Local installs
are hardened via .npmrc (ignore-scripts=true, min-release-age=7). See CLAUDE.md for the full policy.
We use
- @nemtus/symbol-openapi for
openapi3.yml, built and published from the nemtus/symbol mirror of upstream symbol/symbol - OpenAPI Generator to generate REST API client codes
- Especially typescript-axios Generator
- cosmos-client/cosmos-client-ts as a reference of package structure
We would like to thank all the contributors to the above tools.
