GakuNin RDM APIをつかってみる

2024/10/26に公開

概要

GakuNin RDMでは、以下でAPIが公開されています。このAPIの使用例について備忘録です。

https://api.rdm.nii.ac.jp/v2/

参考

GakuNin RDMはOSF(Open Science Framework)をベースに構築されており、APIに関するドキュメントは以下で確認することができます。OpenAPIに準拠しています。

https://developer.osf.io/

PATの取得

PAT(パーソナルアクセストークン)を取得します。

ログイン後、以下のURLから作成することができます。

https://rdm.nii.ac.jp/settings/tokens/

利用

以下のようなスクリプトにより、プログラムからもアクセスすることができます。

.env
access_token=xxx
import requests
import os
from dotenv import load_dotenv

load_dotenv(verbose=True)
load_dotenv("./env")

access_token = os.environ.get("access_token")

# アップロードURLにクエリパラメータを追加
url = f'https://api.rdm.nii.ac.jp/v2/nodes/'

# ファイルを開き、PUTリクエストでアップロード
# with open(file_path, 'rb') as file:
response = requests.get(
    url,
    headers={
        'Authorization': f'Bearer {access_token}'
    }
)

response.json()

参考までに、Authorizationヘッダーが未指定の場合、以下の結果が返却されました。

{'data': [],
 'links': {'first': None,
  'last': None,
  'prev': None,
  'next': None,
  'meta': {'total': 0, 'per_page': 10}},
 'meta': {'version': '2.0'}}

ブラウザで確認

APIの出力結果はブラウザでも確認することができます。

https://api.rdm.nii.ac.jp/v2/

以下のように、Django REST frameworkで作成されていることがわかります。

また、おそらく「Django REST framework JSON:API」を使用し、JSON:APIが採用されていることがわかります。

まとめ

GakuNin RDMおよびOSF(Open Science Framework)のAPIについて、参考になりましたら幸いです。

Discussion