はじめてのJRDB-API
APIの基本的な使い方を学び、最初のデータ取得を行います。
前提条件
- ✓JRDB-APIのアカウント登録が完了していること
- ✓Python 3.8以上、またはNode.js 16以上がインストールされていること
- ✓HTTPリクエストの基本的な知識があること
Step 1: 認証情報の確認
まず、ダッシュボードで2つの認証情報を確認します。
APIキー(api_key)
クエリパラメータとして送信
?api_key=API_KEY認証キー(x-user-key)
HTTPヘッダーとして送信
x-user-key: YOUR_AUTH_KEY注意: 認証情報は機密情報です。GitHubなどに公開しないよう、環境変数で管理してください。
Step 2: 最初のリクエスト
今週の競走馬データ(tky)を取得してみましょう。
Python
import requests
# ダッシュボードで取得した値をそれぞれ貼り付け
API_KEY = "API_KEY" # APIキー(アプリ共通)
AUTH_KEY = "YOUR_AUTH_KEY" # 認証キー (x-user-key)
url = f"https://dev.api.bigtime.world/v1/tky?api_key={API_KEY}"
headers = {
"Content-Type": "application/json",
"x-user-key": AUTH_KEY
}
# 今週末の開催日を指定
payload = {
"racedate": "20250105" # 2025年1月5日
}
response = requests.post(url, json=payload, headers=headers)
data = response.json()
# 結果を確認
if data["result"]["status"] == 200:
horses = data["result"]["data"]
print(f"取得件数: {len(horses)}件")
# 最初の3件を表示
for horse in horses[:3]:
print(f"馬名: {horse.get('horse_name', 'N/A')}")
else:
print(f"エラー: {data.get('message', 'Unknown error')}")※ 本番運用では認証情報を環境変数 JRDB_API_KEY /JRDB_AUTH_KEY に格納し、os.getenv() で読み込むことを推奨します。
JavaScript (Node.js)
// ダッシュボードで取得した値をそれぞれ貼り付け
const API_KEY = "API_KEY"; // APIキー(アプリ共通)
const AUTH_KEY = "YOUR_AUTH_KEY"; // 認証キー (x-user-key)
const url = `https://dev.api.bigtime.world/v1/tky?api_key=${API_KEY}`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-user-key': AUTH_KEY
},
body: JSON.stringify({
racedate: '20250105'
})
});
const data = await response.json();
if (data.result.status === 200) {
const horses = data.result.data;
console.log(`取得件数: ${horses.length}件`);
horses.slice(0, 3).forEach(horse => {
console.log(`馬名: ${horse.horse_name || 'N/A'}`);
});
} else {
console.error(`エラー: ${data.message}`);
}※ 本番運用では認証情報を環境変数 JRDB_API_KEY /JRDB_AUTH_KEY に格納し、process.env.JRDB_API_KEY で読み込むことを推奨します。
Step 3: レスポンスの理解
レスポンスの構造を理解しましょう。
{
"request": {
"racedate": "20250105"
},
"result": {
"status": "success",
"data": [
{
"racekey": "05250101",
"horse_number": "01",
"horse_name": "サンプルホース",
"jockey_name": "サンプル騎手",
"trainer_name": "サンプル調教師",
"horse_weight": 480,
"idm": 55.5,
// ... その他のフィールド
},
// ... 他の馬データ
]
}
}主要なフィールド
racekey- レースを識別する8桁のキーhorse_number- 馬番horse_name- 馬名idm- IDM指数(能力指数)