curlでAPIを試す
curlコマンドでAPIの振る舞いを試すということがあると思います。
振る舞いがわかれば、あとはそれを実際にコードの中で使おうという流れになると思うのですが、私の場合pythonのrequestsモジュールを使って書き換えようと思ったときに、少しつまづきました。
APIのリファレンスを見ると、こうやってcurlで書くと取得できるよと、curlコマンドのサンプルが記載されていたりするのですが、それをそのままコピーして使うことはもちろんできても、コードに書き換えるときに、
- curlのこのオプションは一体何を表しているのか
- 他のモジュールを使って書く場合は、どうやって書けばいいのか
など発生します。
そんなときに見つけたのが、こちら
#コピペするだけ
Convert curl syntax to Python, Node.js, PHP
curlコマンドをそのまま左側のテキストエリアにコピペすれば、右側のテキストエリアにPythonのrequests,Node.js,PHPのコードに変換してくれます。
#実際の例
リクルートのTalk APIをcurlからPythonのrequestsにした例
Before(curl command)
curl -X POST https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk \
-F "apikey=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" \
-F "query=おはよう"
After(Python requests)
import requests
files = {
'apikey': (None, 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'),
'query': (None, '\u304A\u306F\u3088\u3046'),
}
response = requests.post('https://api.a3rt.recruit-tech.co.jp/talk/v1/smalltalk', files=files)
requestsの書き方が違って何回かコードを書き直すという手間がなくなりますね。