相关疑难解决方法(0)

Django Rest Framework:动态返回字段子集

问题

根据blogpost 设计实用RESTful API的最佳实践中的建议,我想在fields基于Django Rest Framework的API中添加一个查询参数,使用户只能为每个资源选择一个字段子集.

串行:

class IdentitySerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = models.Identity
        fields = ('id', 'url', 'type', 'data')
Run Code Online (Sandbox Code Playgroud)

常规查询将返回所有字段.

GET /identities/

[
  {
    "id": 1,
    "url": "http://localhost:8000/api/identities/1/",
    "type": 5,
    "data": "John Doe"
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

fields参数的查询应该只返回字段的子集:

GET /identities/?fields=id,data

[
  {
    "id": 1,
    "data": "John Doe"
  },
  ...
]
Run Code Online (Sandbox Code Playgroud)

包含无效字段的查询应忽略无效字段或抛出客户端错误.

目标

这有可能开箱即用吗?如果没有,实现这个的最简单方法是什么?是否有第三方包已经这样做了吗?

django django-rest-framework

85
推荐指数
3
解决办法
3万
查看次数

标签 统计

django ×1

django-rest-framework ×1