1. ホーム
  2. python

[解決済み] DRFでHyperlinkedModelSerializerを使用するメリットは何ですか?

2023-06-13 23:51:57

質問

に関して このリンク についてですが、Django Rest Framework で HyperlinkedModelSerializer を使っている例をたくさん見ました。と書いてありますね。

HyperlinkedModelSerializer クラスは ModelSerializer クラスと似ています。 クラスと似ていますが、関係を表すのにハイパーリンクを使う点が異なります。 ただし、主キーではなくハイパーリンクを使用します。

私の質問は、通常のモデルシリアライザーと比較して、それらを使用するユースケース/利点は何ですか?

どのように解決するのですか?

唯一の違いは、あなたが含めた引用のように、主キーと外部キーが実際のキー値だけでなく、それらのリソースを指す URL によって表現されていることです。

利点は、関連するオブジェクトを取得したいときに、フロントエンドでリソースの URL を構築する必要がないことです。

もうひとつは完全にネストされた表現で、シリアライザーの出力に関連するオブジェクトをインライン化することができます。これは ModelSerializerHyperlinkedModelSerializer を使用すると、API利用者が関連項目を取得するために追加のリクエストをする代わりに、すぐに関連項目が得られる方が便利だと考えられる場合です。

ネストした表現を実装するには Meta.depth オプションの代わりに関連するモデルのシリアライザを使用することで実装できます。 RelatedField .

xleon氏がコメントで述べているように、URLをキーとして使用することで、他の開発者があなたのAPIを理解することが容易になります。