Apidog

オールインワンのAPI開発プラットフォーム

API設計

API仕様書生成

API設計

API Mock

APIテスト自動化

無料登録
Home / 操作ガイド / PythonのrequestsでGET/POST/PUT/DELETEリクエストを送信

PythonのrequestsでGET/POST/PUT/DELETEリクエストを送信

Pythonのrequestsは、HTTPリクエストを送信するための非常に人気のあるライブラリです。本文では、Pythonのrequestsを利用して、GET、POST、PUT、DELETEリクエストを送信して、レスポンスを受信する方法を紹介します。Python環境でAPIエンドポイントをテストしてみたい場合は、ぜひ本文の内容を見逃しないでください。

Pythonのrequestsは、HTTPリクエストを送信するための非常に人気のあるライブラリです。本文では、Pythonのrequestsを利用して、GET、POST、PUT、DELETEリクエストを送信して、レスポンスを受信する方法を紹介します。Python環境でAPIエンドポイントをテストしてみたい場合は、ぜひ本文の内容を見逃しないでください。

💡
どのようなHTTPメソッドを利用してリクエストを送信する場合でも、Apidogを利用しては非常に便利に行えます。また、Apidogにはリクエストの保存機能があり、これを利用することでAPIドキュメントの生成も可能です。保存したリクエスト情報から、Pythonのrequestsライブラリによる実装コードも1クリックで生成できるので、APIをテストしたり、管理したりする時に非常に役立ちます。

Apidogは個人向け完全無料なツールとして、誰でも無料で制限なく利用できます。下記のボタンからApidogを無料で取得しましょう👇👇👇
button

Python requestsとは?

Pythonのrequestsは、HTTPリクエストを送信するための非常に人気のあるライブラリです。requestsを使用することで、PythonプログラムがウェブページやAPIエンドポイントなどのリモートサーバーに対してGET、POST、PUT、DELETEなどのHTTPメソッドを使用してリクエストを送信し、レスポンスを受信することができます。

requestsライブラリは、Pythonの標準ライブラリであるurllibよりも使いやすく、シンプルなAPIを提供しています。このため、多くの開発者がHTTP通信を行う際にrequestsを選択します。

こちらもお読みください:urllibとrequestsモジュールとの比較

HTTPメソッド - GET/POST/PUT/DELETE

APIに対して、異なる操作を行うには、異なるHTTPメソッドを使用するのがREST原則の規定になります。REST(Representational State Transfer)の原則の1つとして、HTTPメソッドを使い分けることが推奨されています。REST APIでは、リソースに対する操作をHTTPメソッドで表現することが基本的な考え方です。主なHTTPメソッドとRESTでの使用例は以下の通りです。

  • GET - リソースの取得
  • POST - 新規リソースの作成
  • PUT - リソースの上書き更新
  • DELETE - リソースの削除

このようにCRUD操作に対応したHTTPメソッドを使い分けることで、クライアントは実行したい処理の内容をHTTPメソッドだけで表現できます。サーバ側もメソッドに対応した処理を実装すればいいので、両者のインタフェースが明確になります。

Python requestsでGET/POST/PUT/DELETEリクエストを送信

それでは、Python requestsを使ってREST APIへリクエストを送信する場合、HTTPメソッドを使い分けて、GET/POST/PUT/DELETEリクエストをよく送信する必要もよくあるのでしょう。Pythonのrequestsライブラリを使ってHTTPメソッドを指定する場合は、requests.request()メソッドの第一引数に指定します。基本的な書き方は以下:

import requests

response = requests.request(method, url, params=None, data=None)
  • methodにはGET、POST、PUT、DELETEなどのHTTPメソッドを文字列で指定します。
  • urlはリクエストを送信するURLを指定します。
  • paramsにクエリパラメータを辞書で指定できます。
  • dataにリクエストボディを指定できます。
PythonのrequestsライブラリでAPIを呼び出す方法
Pythonでrequestsライブラリは、APIを扱うためによく使われています。それでは、Pythonのrequestsを使って、APIを呼び出すためには、どうしたらいいですか?本文では、Pythonのrequestsの使い方を皆さんに紹介します。Pythonのrequestsを使ってAPIとのやり取りをしたい方は、ぜひ本文の内容を参照してください。

Python requestsでGETリクエストを送信

例えば、Python requestsでGETリクエストを送信する場合は、次のコードで実装することができます。

import requests

url = "http://example.com/api/items"
params = {"category": "food", "order": "desc"}

response = requests.get(url, params=params)

print(response.status_code)
print(response.text)
  • requests.get()メソッドでGETリクエストを送信
  • 第一引数にリクエストURL、第二引数にクエリパラメータを辞書で指定
  • レスポンスがResponseオブジェクトとして返ってくる
  • status_codeやtext属性でレスポンスの詳細を取得

この例では、categoryとorderのクエリパラメータ付きでAPIリクエストを送信しています。GETリクエストはデータの取得が主な目的のため、パラメータ指定に注意が必要です。

Python requestsでPOSTリクエストを送信

Pythonのrequestsライブラリを使ってPOSTリクエストを送信する基本的な例は以下の通りです。

import requests

url = "http://example.com/api/"
data = {"key1": "value1", "key2": "value2"}

response = requests.post(url, data=data)

print(response.status_code)
print(response.text)
  • requests.post()メソッドを使うことで、POSTリクエストが送信できる
  • 第一引数にリクエスト送信先のURL
  • data引数にPOSTデータを辞書型で指定する

このコードでは、example.comのAPIに対して、key1、key2のデータをPOSTしています。レスポンスのステータスコードやテキスト本文をprint()で取得できます。

Python requestsでPUTリクエストを送信

Pythonのrequestsライブラリを使ってDELETEリクエストを送信する基本的な例は以下のようになります。

import requests

url = "http://example.com/api/items/1"

response = requests.delete(url) 

print(response.status_code)
print(response.text)
  • requests.delete()メソッドを呼び出し
  • 第一引数に対象のリソースのURLを指定

この例では、example.comのAPIエンドポイントに対して、ID=1のリソース削除の要求をDELETEメソッドで送信しています。レスポンスはResponseオブジェクトとして返ってきます。ステータスコードやテキスト本文を参照できます。

このようにrequests.delete()を使うことで、簡単にDELETEリクエストを実行できます。

Python requestsでDELETEリクエストを送信

Pythonのrequestsライブラリを用いたDELETEリクエストの送信方法は以下の通りです。

import requests

url = "http://example.com/api/items/1" 

headers = {"Content-Type": "application/json"}

response = requests.delete(url, headers=headers)

print(response.status_code)

if response.status_code == 204:
    print("Successfully deleted the resource.")
  • requests.delete()メソッドを使ってDELETEリクエストを送信
  • 削除対象のリソースのURLを第一引数に指定
  • ヘッダなどの追加オプションはkwargs引数で指定
  • レスポンスのstatus_codeで削除の成功・失敗を判定

この例ではID=1のリソースの削除要求を送信しています。204 No Contentが削除成功を示す一般的なステータスコードです。

button

Apidog:より直感にAPIリクエストをテスト&管理

Python requestsは非常に強力で機能が豊富なAPIリクエストライブラリですが、習得するまでに一定のコストがかかります。そこで、ここではApidogという直感的で使いやすいGUIのAPIクライアントツールを皆さんに紹介します。Apidogを使用すると、どの種類のHTTPリクエストをも直感的なUIで送信できるので、非常に便利です。

ApidogでHTTPメソッドを指定

Apidogは、十数種のHTTPメソッドにも対応可能なので、GET、POST、PUT、DELETEなどのリクエストを送信する場合でも、上記画像のように直感的なUIで簡単に指定してリクエストを送信することができます。

Python requestsの実装コードをも自動生成

また、Apidogを使ってAPIリクエストを送信してレスポンスを取得すると、そのリクエスト情報をユースケースとして保存することも可能です。また、Pythonのrequestsの実装コードを手動で書きたくない場合でも、Apidogを使って、1クリックでそれを生成することができるので、実装コードを手動で記述しなくても、簡単に取得できます。

ステップ⒈Apidogで先に保存したAPIかRequestを選択して、右側パネルで「コード生成」にガーソルを置き、「クライアントコードを生成」を選択します。

Apidogクライアントコードの生成

ステップ⒉コード生成ウィンドウで、「Python」を選択し、「Requests」を選択すると、Requestsモジュールの実装コードを生成することができます。

Pythonのrequestsの実装コードを生成

まとめ

Pythonのrequestsライブラリを使うことで、GETやPOST、PUT、DELETEなどのHTTPメソッドを指定して、様々なAPIリクエストを簡単に実装できることができます。このように、REST APIを扱う際にはHTTPメソッドを適切に使い分けることが大切ですが、requestsライブラリを使えばPythonから簡単に実現できそうです。

また、Apidogにはリクエストの保存機能があり、これを利用することでAPIドキュメントの生成も可能です。保存したリクエスト情報から、Pythonのrequestsライブラリによる実装コードも1クリックで生成できるので、APIをテストしたり、管理したりする時に非常に役立ちます。

button

Apidogのニュースレターを購読する

今すぐ購読すると、いつでもApidogから更新情報と最新観点を手に入れることができます。