PyCon JP 2024

PythonのHTTPクライアントツール徹底比較
2024-09-27 , 20F Track2

Pythonエコシステムにおいて、HTTPクライアントは非常に重要な役割を果たしています。特にWeb APIを使用したデータのやり取りや取得においては、適切なライブラリ選択が開発速度やアプリケーションのパフォーマンスに大きく影響します。本トークでは、Pythonの代表的なHTTPクライアントであるrequests、httpxなどのライブラリを徹底的に比較し、それぞれの特徴、利点、欠点を詳しく解説します。また、使用例を交えて、どのような場面でどのツールを選ぶべきかについて検討した結果を発表いたします。このセッションを通じて、自身のプロジェクトに最適なHTTPクライアントを選定するための知識と洞察を得ることができます。


本トークでは、Pythonの代表的なHTTPクライアントライブラリであるrequests、httpx、urllib3、aiohttpなどを比較し、それぞれの機能、パフォーマンス、使いやすさについて詳しく解説します。特に、同期処理と非同期処理の違いやエラーハンドリングについて具体的なコード例を交えて紹介します。これにより、各ライブラリの強みと弱点を理解し、プロジェクトに最適なHTTPクライアントを選ぶためのヒントを習得することができます。具体的な使用シナリオに応じた推奨ライブラリの選定方法も紹介し、開発者が自身のニーズに最も適したツールを選べるようなヒントをお話します。これにより、HTTPクライアントライブラリの選定において、より確信を持って決定を下せるようになります。


Why did you choose this topic?

私たちが普段開発しているRecustomerというプロダクトは、カートシステムやOMS・WMSといった外部サービスとAPIを介して連携することが前提となっているプロダクトです。この特徴から、HTTPクライアントライブラリを使用することが非常に多いプロダクトです。多数の外部サービスと頻繁にデータをやり取りする必要があるため、パフォーマンスや安定性が求められます。

プロジェクトの規模が大きくなるにつれて、エラーハンドリングやリトライロジックの実装も複雑化し、ライブラリ選定が重要になりました。

この経験を通じて、HTTPクライアントライブラリの選定が開発効率やシステムの信頼性に大きな影響を与えることを実感しました。そこで、私たちの経験と知識を共有することで、他の開発者が同様の課題に直面した際に役立つ情報を提供したいと考え、この題材を選びました。私たちのプロジェクトにおける実際の事例を交えて説明することで、具体的かつ実践的な学びを共有し、参加者が自身のプロジェクトで適切な選択を行うための指針となることを目指しています。

Knowledges and know-how the audience can get from your talk

・HTTPクライアントライブラリの基本知識
・各ライブラリでの比較結果(書き方・パフォーマンス)とメリット・デメリット
 ・同期処理と非同期処理
 ・エラーハンドリングとリトライ
・開発におけるHTTPクライアントツールを比較する際の視点や議論ポイント

Prior knowledges speakers assume the audience to have

・基本的なPythonの経験
・APIに関する基本的な知識

Audience experiment

Beginner

Language of presentation

日本語

Language of presentation material

日本語

See also: 発表資料