仕様が変わった exchangeratesapi.io の古いAPIと互換性をもたせるnpmパッケージを作ってみた
背景
無料かつ登録不要で使える為替取得APIとして exchangeratesapi.ioが有名でしたが、ついに2021年4月から登録必須&一分機能は有料のサブスクリプション契約が必須になってしまいました。
新しいAPIの詳細については、 有料になった exchangeratesapi.io を無料の範囲内で使い倒すnpmパッケージを作ってみた の冒頭で触れているので、そちらを参照してください。
今回の変更に伴って、APIの仕様やレスポンスの形式も若干変わった
のが微妙なポイント。
すでに組み込み済みのシステムの事を考えて、互換性を保つためにWrapperが欲しいケースもありそうだなと思い、作ってみました。
古いAPIと互換性をもたせるnpmパッケージを作ってみた
@ittkm/exchangeratesapi-wrapper
exchangeratesapi.io の仕様変更で頭を抱えている方の一助になれば幸いです。
以下、READMEの日本語訳
インストール
# via npm
npm install --save @ittkm/exchangeratesapi-wrapper
# via yarn
yarn add @ittkm/exchangeratesapi-wrapper
使い方
import exchangeratesapi from "@ittkm/exchangeratesapi-wrapper";
// // または
// const exchangeratesapi = require("@ittkm/exchangeratesapi-wrapper").default;
// https://exchangeratesapi.io/ で取得したAPIキーに書き換えてください
const API_KEY = "1234567890abcdefghijklmnopqrstuv";
async function exchangeratesapiSamples() {
// API Keyを使って初期化
const api = new exchangeratesapi(API_KEY);
// 好きなAPIを呼び出す
const exchangeRates = await api.latest();
console.dir(exchangeRates);
}
使用例
/**
* 最新レート取得 (初期設定)
* - 基準通貨: EUR
* - 対象通貨: すべて
* - 旧APIの場合:
* GET https://api.exchangeratesapi.io/latest
*/
console.dir(await api.latest());
/**
* 最新レート取得
* - 基準通貨: USD
* - 対象通貨: GBP, JPY, EUR
* - 旧APIの場合:
* GET https://api.exchangeratesapi.io/latest?base=USD&symbols=GBP,JPY,EUR
*/
const latestParameters = {
base: "USD",
symbols: ["GBP", "JPY", "EUR"],
};
console.dir(await api.latest(latestParameters));
/**
* 日付指定で取得
* - 日付: 2013-12-24
* - 基準通貨: GBP
* - 対象通貨: USD, CAD, EUR
* - 旧APIの場合:
* GET https://api.exchangeratesapi.io/2013-12-24?base=GBP&symbols=USD,CAD,EUR
*/
const historicalParameters = {
date: "2013-12-24",
base: "GBP",
symbols: ["USD", "CAD", "EUR"],
};
console.dir(await api.historical(historicalParameters));
/**
* 時間枠指定で取得 (最小オプション)
* - 対象通貨: すべて
* - 旧APIの場合:
* GET https://api.exchangeratesapi.io/history?start_at=2012-05-01&end_at=2012-05-03
*/
console.dir(
await api.history({
start_at: "2012-05-01",
end_at: "2012-05-03",
})
);
/**
* 時間枠指定で取得 (通過指定)
* - 基準通貨: EUR
* - 対象通貨: USD, AUD, CAD
* - 旧APIの場合:
* GET https://api.exchangeratesapi.io/history?start_at=2012-05-01&end_at=2012-05-03&base=EUR&symbols=USD,AUD,CAD
*/
const timeseriesParameters = {
start_at: "2012-05-01",
end_at: "2012-05-03",
base: "EUR",
symbols: ["USD", "AUD", "CAD"],
};
console.dir(await api.history(timeseriesParameters));
レスポンス
以前の exchangeratesapi.io のレスポンスと互換性があります。
詳細はアーカイブ済みのドキュメントを参照してください。
Author And Source
この問題について(仕様が変わった exchangeratesapi.io の古いAPIと互換性をもたせるnpmパッケージを作ってみた), 我々は、より多くの情報をここで見つけました https://qiita.com/itTkm/items/da07e23dcbbd52b324ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .