Advanced Usage
apis
の暗黙的な読み込み
pybotters.Client
の引数 apis
を指定せず以下のように暗黙的な読み込みが可能です。
カレントディレクトリに apis.json
を配置する
Pythonの実行カレントディレクトリに apis.json
という名前のファイルを配置することで自動的にそのファイルを読み込ます。
# bash
$ ls
apis.json
注釈
カレントディレクトリはPython標準の os
モジュールの getcwd
で確認できます。
環境変数 PYBOTTERS_APIS
にファイルパスを設定する
環境変数 PYBOTTERS_APIS
に同様の形式のJSONファイルパス設定することでそのファイルを読み込みます。
カレントディレクトリ以外に配置している場合に有効です。
# bash
$ export PYBOTTERS_APIS=/path/to/apis.json
優先順位
以下のような優先順位で、下位のものは設定があっても無視されます。
引数 apis
の明示的な指定 > カレントディレクトリの apis.json
> 環境変数 PYBOTTERS_APIS
同期リクエスト
pybotters
は requests
ライブラリのようにパッケージトップレベルでリクエスト関数をサポートしています。
この関数は非同期ではないので await
で呼び出す必要はありません。
またはレスポンスボディの取得にも await
を付ける必要はありません。
上記の apis
の暗黙的な読み込みと合わせることで、REPL(対話モード)で pybotters
を利用する際に便利です。
r = pybotters.request('GET', 'https://...', apis=apis)
r = pybotters.get('https://...', params={'foo': 'bar'}, apis=apis)
r = pybotters.post('https://...', data={'foo': 'bar'}, apis=apis)
r = pybotters.put('https://...', data={'foo': 'bar'}, apis=apis)
r = pybotters.delete('https://...', data={'foo': 'bar'}, apis=apis)
print(r.text())
print(r.json())
注釈
内部的にはpybotters.Client
の非同期関数を同期的に実行しています。
リクエスト毎にセッションは閉じられる為keep-alive接続ではありません。