Python

Pythonでrequestsを使ってREST(GET/POST)を試してみる

Python

Pythonには標準のurllibモジュールを使うことでREST APIへのアクセスが可能です。

ただし私はサードパーティーから出ているrequestsモジュールを使うほうがシンプルに使えて何かと便利なので、通常はrequestsモジュールを使ってます。

今回も自分へのメモとなります。

requestsモジュールのインストール

標準ではインストールされてません。

(base) C:\PythonProject>pip install requests
Requirement already satisfied: requests in c:\users\user\anaconda3\lib\site-packages (2.24.0)
Requirement already satisfied: idna<3,>=2.5 in c:\users\user\anaconda3\lib\site-packages (from requests) (2.10)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\user\anaconda3\lib\site-packages (from requests) (1.25.11)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\user\anaconda3\lib\site-packages (from requests) (2020.12.5)
Requirement already satisfied: chardet<4,>=3.0.2 in c:\users\user\anaconda3\lib\site-packages (from requests) (3.0.4)

GETの利用

GETで呼び出す例です。
・requests.getで呼び出し
・paramsで引数を指定する
・リクエストの結果はstatus_codeやjsonなどで指定して取得できる

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.get('http://httpbin.org/get', params=payload)
print(r.status_code)
print(r.text)
print(r.json())

// 結果
200
{
  "args": {
    "key1": "value1", 
    "key2": "value2"
  }, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.24.0", 
    "X-Amzn-Trace-Id": "Root=1-60628027-4d47a5077c1009970f13d3ba"
  }, 
  "origin": "114.150.171.131", 
  "url": "http://httpbin.org/get?key1=value1&key2=value2"
}

{'args': {'key1': 'value1', 'key2': 'value2'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Host': 'httpbin.org', 'User-Agent': 'python-requests/2.24.0', 'X-Amzn-Trace-Id': 'Root=1-60628027-4d47a5077c1009970f13d3ba'}, 'origin': '114.150.171.131', 'url': 'http://httpbin.org/get?key1=value1&key2=value2'}

POSTの利用

POSTもGETとほとんど同じになります。
・requests.postで呼び出し
・dataで引数を指定する

import requests

payload = {'key1': 'value1', 'key2': 'value2'}

r = requests.post('http://httpbin.org/post', data=payload)
print(r.status_code)
print(r.text)
print(r.json())

// 結果
省略
・
・

まとめ

PUTやDELETEなどの場合も同様に簡単に指定することができます。

Pythonのオススメ勉強方法

Pythonの学習については、これまでもいくつかおすすめの書籍などを挙げていたこともありますが、今はまずは「Udemy」が何よりもオススメです。

Pythonの以下のコースは合計で28.5時間のビデオ講座があって、それらを受講するだけで、Pythonの基礎から応用まで学ぶことができます。

そして何より安いです!!
Udemyでは頻繁にセールが開催されているので、セールのタイミングで購入すれば2,000円以内で済みます。(※セールごとに割引率が少し違うみたいです)
書籍より安いビデオ講座があるとは・・・

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

私も受講してみましたが、かなり幅広く網羅されており、おそらくこれ以上の教材はないと思いますので、絶対にUdemyはおすすめです。

今回は以上となります。

コメント

タイトルとURLをコピーしました