ホームページ > バックエンド開発 > Python チュートリアル > Python で DynamoDB 用の REST API をセットアップする

Python で DynamoDB 用の REST API をセットアップする

Patricia Arquette
リリース: 2024-11-17 20:42:02
オリジナル
497 人が閲覧しました

Dynamo DB は、AWS が提供する膨大なマネージド データベースのセットをサービスとして提供する NoSQL です。他のほとんどのサービスと同様、完全にサーバーレスで、柔軟性があり、拡張が簡単です。

データモデル

ここでは NoSQL に取り組んでいるため、データの構造に実際の制限はありません。 テーブル内の各項目属性としてキーと値のペアを操作できます。 これらのキーワードをもう一度見てみましょう。

テーブル - かなり馴染みのある用語で、本質的にはデータ (この場合は項目) のコレクションです。これは、コンソール上で DynamoDB を操作する開始点でもあります。

Item - テーブル内のエントリ。これは、SQL と同等のデータベース内の行と考えることができます。

属性 - 項目を構成するデータポイント。これには、アイテム固有の属性、メタデータ、またはアイテムに関連付けることができる事実上あらゆるものが含まれる可能性があります。

JSON 配列は、DynamoDB のテーブルと同等のものと考えることができます。独自のテーブルを作成すると、さらに明確になると思います。

データベースのセットアップ

AWS コンソールから DynamoDB に新しいテーブルを作成するのは文字通り簡単です。必要なのは名前とパーティション キー (この場合は主キー) だけです。これは、テーブル内の項目を検索するのに役立ちます。

Setting up a REST API in Python for DynamoDB

プレイしたすべてのゲームの表を作成し、10 点満点で評価します :)

Setting up a REST API in Python for DynamoDB

コンソールからテーブルを直接いじることができます。新しいアイテムを追加して、どのようになるかを確認してみましょう。

Setting up a REST API in Python for DynamoDB

私の最初のエントリは、私のお気に入りの RPG (ロールプレイング) ゲーム、ウィッチャー 3 です。評価 に新しい属性を追加します。そうすれば、私からは確実に 9.8 になるでしょう :)

APIのセットアップ

そうです、GUI を使用せずにこれらすべてを実行するための Python コードを作成します ;)

Python の利点は、わずか数行のコードで本格的な API をセットアップできることです。このコードの塊は、テーブルにアクセスしてそこからデータをフェッチするのに十分です。スキャン機能を使用してゲームテーブルからアイテムを取得します。

python3 app.py を使用してアプリを起動できます

Setting up a REST API in Python for DynamoDB

/games エンドポイントに対してカールすると、次のような応答が期待できます。

エントリの作成と更新のルート

ここでは、put_item を使用してテーブルに項目を追加しています。レコードを更新するには、関数 update_item を使用します。

注意深く観察すると、更新する属性を指定する UpdateExpression を使用していることがわかります。これにより、どの属性が変更されるかを正確に制御し、誤って上書きすることを避けることができます。

Setting up a REST API in Python for DynamoDB

レコードを削除するには、次のようなものを使用できます -


これで完了です。Python のおかげで、DynamoDB 用の CRUD 機能を備えた REST API を数分でセットアップするだけです。

以上がPython で DynamoDB 用の REST API をセットアップするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート