Skip to content

Improve nested serializer in API documentation #5072

Closed as not planned
Closed as not planned
@jpadilla

Description

@jpadilla

Steps to reproduce

class ASerializer(serializers.Serializer):
    name = serializers.CharField()


class BSerializer(serializers.Serializer):
    name = serializers.CharField()
    animal = ASerializer()

Expected behavior

Expose parameters from nested serializers. A custom docs/link.html template allowed me to expose at least one level pretty easy by doing:

{% for field in link.fields|with_location:'form' %}
<tr>
  <td class="parameter-name"><code>{{ field.name }}</code>{% if field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if field.schema.description %}{{ field.schema.description }}{% endif %}</td>
  {% if field.schema.properties %}
    {% for name, nested_field in field.schema.properties.iteritems %}
      <tr><td class="parameter-name" style="padding-left: 25px;"><code>{{ name }}</code>{% if nested_field.required %} <span class="label label-warning">required</span>{% endif %}</td><td>{% if nested_field.schema.description %}{{ nested_field.schema.description }}{% endif %}</td></tr>
    {% endfor %}
  {% endif %}
</tr>
{% endfor %}

screen shot 2017-04-11 at 11 35 09 am

Stripe's API Reference handles this pretty nice and I think is something we could look up to for reference.

stripe-api

Actual behavior

screen shot 2017-04-11 at 11 34 59 am

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions