On 05/17/2016 08:25 AM, Finucane, Stephen wrote:
+class PatchSerializer(ModelSerializer):
> >+ class Meta:
> >+ model = Patch
> >+ read_only_fields = ('project', 'name', 'date', 'submitter', 'diff',
> >+ 'content', 'hash', 'msgid')
>
>So I played around with think the responses could do with a little more
>work. Firstly, here's a sample response (with the really long fields
>"SNIPPED!").
>
> {
> "id": 1,
> "mbox_url": "/patch/1/mbox/",
> "msgid":
"<1391726961-32072-1-git-send-email-markus.ma...@linaro.org>",
> "date": "2014-02-06T22:49:21",
> "headers": "SNIPPED!",
> "content": "SNIPPED!",
> "name": "[RFC] parsemail.py: Don't search for patches in replies",
> "diff": "SNIPPED!",
> "commit_ref": null,
> "pull_url": null,
> "archived": false,
> "hash": "312958438b253a6436397bb06816c09616d0833e",
> "submitter": 1,
> "project": 1,
> "delegate": null,
> "state": "New",
> "tags": []
> },
Great feedback:
>(1) We should have two serializers: one for 'list' and one for 'detail'
>(or 'get'). I would exclude 'headers', 'content' and 'diff' from the
>'list' response (and test this).
done in v3
>(2) We should use links for the 'project'/'submitter' fields, rather
>than IDs. Alternatively, we could have a 'project_id' and
>'project_url' field instead of simply 'project'. What do you prefer?
I found a nice way to use absolute urls and I think we should just do
that rather than have both "_id" and "_url" fields.
>(3) Should 'header' be a list, like 'tags'?
Its easy enough and a nice touch.
>(4) Could/should 'mbox_url' use an absolute link instead of the
>relative one?
yep, v3.
(5) Use 'prefetch_related' on 'patch.tags', in addition to
'patch.checks'. There is a cascade of queries to the 'patchwork_tag'
field when accessing '/api/1.0/patches/' at the moment. In general,
we could probably do with making better use of 'defer',
'prefetch_related' and 'select_related'. The existing views code [1]
would be a good place to start here.
thanks for the pointer.
_______________________________________________
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork