質問: AWSのAPIをpythonのモジュールとして利用できるライブラリにAWS SDK for Pythonというものがあり、 学習しているのですが、その中で"低レベルインターフェース"と"高レベルインターフェース"という用語が登場します。 この二つの用語ですが、一般的なプログラミング言語でも共通の用語でしょうか。 または、python独自のものでしょうか。 いまいちピンとくる解説がググっても出てこなかったので質問した次第です。 [https://aws.amazon.com/jp/sdk-for-python/] ``` リソース API Boto3 には、2 つの異なるレベルの API があります。クライアント(「低レベル」)API では、下層の HTTP API 操作との 1 対 1 のマッピングが提供されます。 ``` [https://qiita.com/shiimaxx/items/e436c1e0019f0497b5c4] ``` Boto3では、AWSリソースを操作するインターフェースとして低レベルインターフェース、高レベルインターフェースの2種類があります。 Low-Level Clientは名前のとおり低レベルインターフェースにあたるものです。 ```
回答: Python 独自、ということはなく、普通に使われます。 良くあるのは通信関連でしょうか。 高レベルだと例えば http の GET リクエストを一発で処理できますが、 低レベルだと * 相手先 URI をもとにソケットをオープンする * ソケットがオープンできたらリクエストヘッダとボディを構築して、リクエストを投げる * リクエストが投げ終わったら、レスポンスが来るまで待機する * レスポンスが来たらそのヘッダをみて、ボディを保存する * レスポンスが全部来たら、ソケットを閉じる なんてことを全部プログラムでやるようなことになります。 処理によっては低レベルを使わないと実現できないこともあります(例えば独自プロトコルでの通信とか)から、ケースバイケースで利用されるものです。決して低級・高級という意味ではないのだけは注意した方がいいですかね。 ※敢えて言うなら「抽象化が」低レベル・高レベルという意味です