問題
ブログ投稿の「実践的なRESTful APIを設計するためのベストプラクティス」で推奨されているようfields
に、Django Rest FrameworkベースのAPIにクエリパラメーターを追加すると、ユーザーはリソースごとにフィールドのサブセットのみを選択できます。
例
シリアライザ:
class IdentitySerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.Identity
fields = ('id', 'url', 'type', 'data')
通常のクエリはすべてのフィールドを返します。
GET /identities/
[
{
"id": 1,
"url": "http://localhost:8000/api/identities/1/",
"type": 5,
"data": "John Doe"
},
...
]
fields
パラメータを使用したクエリは、フィールドのサブセットのみを返す必要があります。
GET /identities/?fields=id,data
[
{
"id": 1,
"data": "John Doe"
},
...
]
無効なフィールドを含むクエリは、無効なフィールドを無視するか、クライアントエラーをスローする必要があります。
ゴール
これは、箱から出して何とかして可能ですか?そうでない場合、これを実装する最も簡単な方法は何ですか?すでにこれを行うサードパーティのパッケージはありますか?