PyCon JP 2024

ロケール設定が保存されました。pretalxでは英語のサポートが充実していると思っていますが、問題やエラーが発生した場合は、ぜひご連絡ください。

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

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


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


この題材を選んだ理由やきっかけ

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

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

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

オーディエンスが持って帰れる具体的な知識やノウハウ

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

オーディエンスに求める前提知識

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

オーディエンスの経験レベル

Beginner

発表の言語

日本語

発表資料の言語

日本語

See also: 発表資料