「電子ラボノートフォーラム技術会議」のご報告
日時: 2025年3月12日(水)10:10~12:00
場所: Rethink物質創成科学大講義室
対象: eLabFTWを利用中の研究室・技術室のスタッフ
参加者:25名
講師:Deltablot社エンジニア Moustapha Camara氏
内容:「API利用に関するハンズオンワークショップ」
第1部:APIの概念の紹介
第2部:curlを用いたHTTPリクエストの基礎
第3部:Pyhtonライブラリelabapi-pythonの使用
詳細および当日の様子:
2025年3月12日、eLabFTWのアカウントを持っている研究室・技術室のスタッフを対象に、Deltablot社エンジニアのMoustapha Camera氏による電子ラボノートのAPI利用のハンズオンワークショップが行われました。
Jupyter Notebookを用いて参加者全員がその場でeLabFTWのAPIの一通りの操作を体験しました。以下に実習と質疑応答の様子をまとめます。
第1部ではAPIに関する下記の概念の解説があった。
・API(Application Programming Interface): 異なるソフトウェアアプリケーション同士が通信できるようにするための一連のルール。
・REST(Representational State Transfer): 標準的なHTTPメソッド(GET、POST、PUT、DELETE、)を使用して通信を行う、Web API設計のスタイル。「ステートレス(状態を保持しない)」であることが特徴。
・API EndPoints:APIがリクエストを受け取り、レスポンスを返す特定のURLのこと。エンドポイントは、前述のRESTful構造に従うのが一般的で、GET、POST、PUT、DELETEなどのHTTPメソッドを使ってリソースに対してさまざまな操作を行う。
・Verbs:HTTP動詞(HTTPメソッドとも呼ばれる)は、APIにリクエストを送る際に、どのような操作を行うかを指定するもの。GET(取得), POST(作成), PATCH(更新), DELETE(削除)など(これらをまとめてCRUDと呼ぶ)がある。
・API Headers:HTTPリクエストと一緒に送信されるキーと値のペアで、サーバーに対して追加の情報を提供するもの。Authorization(認証情報を送信するために使用される。例:トークンやAPIキー), Content-Type(送信するデータの形式を指定する。例:application/json), Accept(クライアントが期待するレスポンスの形式を指定する。例:application/json), User-Agent(リクエストを送信しているクライアントの情報を識別する。)などがある。
・curl:HTTPリクエストを送信するためのコマンドラインツールで、APIリクエストの送信、エンドポイントのテスト、Web操作の自動化などによく使われる。
APIにアクセスする手段はいくつかある。
・ブラウザ:URLをアドレスバーに貼り付けてアクセスすると、GETリクエストとして送信される。
・curl: コマンドラインツールを使って、任意のHTTPリクエストを送信可能。
・その他のツールや言語:HTTPリクエストが送れるものであれば何でもOK(例:Python、R、Rubyなど、ほとんどのプログラミング言語)。
第2部では、APIキーの認証作業などの環境構築を行った後に、curlを用いて実際に以下のような操作を行った。
・POST動詞を用いて実験記事を作成する。
・GET動詞を用いて実験記事を読み込む。
・GET動詞を用いて「特定の」実験記事を一つ読み込む。
・PATCH動詞を用いて実験記事を更新する。
・DELETE動詞を用いて実験記事を削除する。
第3部ではeLabFTWのPythonライブラリ:elabapi-pythonを用いてAPIにアクセスする方法を学んだ。
・環境構築
・ライブラリのpost_experimentを用いて実験記事を作成する。
・ライブラリのpatch_experimentを用いて実験記事を更新する。
・ライブラリのpost_uploadを用いてファイルをアップロードする。
・ライブラリのpost_upload_replaceを用いて既存のファイルを置き換える。
・read_uploadsとfile.writeを用いてファイルをローカルへダウンロードする。
質疑応答
Q:APIのスキーマはどこで確認できるか?
A:eLabFTW のページ(https://doc.elabftw.net/api/elabapi-html/)でAPI のスキーマを解説している。
Q:API-KEYはどこに保管するのがいいか?
A:パソコンのリポジトリにenvファイルとして保存することお勧める。個人が資料を保管するリポジトリなので安全だと思われる。
Q:APIのバージョンが変更されたら、どう対処すればいいのか?
A:バージョンが変更されても、コードのアドレスさえ変更すれば対処が可能だ。 現在のv2は安定した(stable)バージョンであるため、引き続き使用することができる。
Q:現在のAPI ver2 は数ヶ月ないし数年間で変更される予定があるか?
A:Stableバージョンなので、引き続き使用するのに問題がない。
(バージョンアップの予定がないと予想される)
お問い合わせ:
ご質問やご不明な点がございましたら、下記までお問い合わせください。
※内容によってはご返信までにお時間をいただく場合がございます。あらかじ めご了承ください。
赤瀬 善太郎(NAIST DSC RX実装部門 特任准教授)
E-mail: dsc-info(at)dsc.naist.jp(事務局)