2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Symbol-RestのOpenAPIをTypeScriptで使ってみる

Last updated at Posted at 2025-04-26

openapi3.yml の入手

まずは openapi3.yml を手に入れましょう。GitHub のリリースページからダウンロードする方法と、自分でビルドする方法があります。

ダウンロード

一番簡単なのは、GitHub のリリースページからダウンロードする方法です。

Symbol OpenAPI リリースページ

ここから openapi3.yml をダウンロードしてください。

自分でビルド

自分でビルドしたい場合は、以下の手順を実行します。

  1. GitHub リポジトリをクローンします。
git clone https://github.com/symbol/symbol-openapi.git
  1. クローンしたリポジトリのディレクトリに移動し、依存パッケージをインストールします。
cd symbol-openapi
npm i
  1. ビルドを実行します。成功すると、_build ディレクトリ内に openapi3.yml が生成されます。
npm run build

プロジェクトで使う

openapi ディレクトリを作成して、ダウンロードまたはビルドした openapi3.yml を中に格納します。

my-project/
├── openapi/
│   └── openapi3.yml       ← ここに置く
├── src/
│   └── ...

次に openapi-typescript-codegen をインストールします。また、HTTP クライアントに axios を使用したいので、併せてインストールします。

npm i -D openapi-typescript-codegen
npm i axios

以下のコマンドで OpenAPI コードを生成します。

npx openapi-typescript-codegen -i ./openapi/openapi3.yml -o ./src/generated-api --useOptions -c axios

これにより、src/generated-api ディレクトリ内に API クライアントコードが生成されます。
あとは、これを自分のコードから呼び出して使うだけです。

使用例
生成したコードを使って、実際に API を呼び出してみます。
以下は /node/info エンドポイントを取得する例です。

import { NodeRoutesService, OpenAPI } from "./generated-api";

OpenAPI.BASE = "https://t.sakia.harvestasya.com:3001";

NodeRoutesService.getNodeInfo()
  .then((nodeInfo) => {
    console.log("Node Info:", nodeInfo);
  })
  .catch((error) => {
    console.error("Error fetching node info:", error);
  });
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?