8000 OpenAPI AutoSchema does not handle ListField correctly · Issue #6815 · encode/django-rest-framework · GitHub
[go: up one dir, main page]

Skip to content
OpenAPI AutoSchema does not handle ListField correctly #6815
Closed
@khj809

Description

@khj809

Checklist

  • I have verified that that issue exists against the master branch of Django REST framework.
  • I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
  • This is not a usage question. (Those should be directed to the discussion group instead.)
  • This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
  • I have reduced the issue to the simplest possible case.
  • I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)

Steps to reproduce

djangorestframework==3.10.0

# serializers.py
class MySerializer(serializers.Serializer):
    my_values = serializers.ListField(child=serializers.FloatField())

# views.py
class MyAPIView(GenericAPIView):
    serializer_class = MySerializer

urls.py and templates/swagger-ui.html are same as described in documentation.

Expected behavior

Swagger should render schema without any problems.

Actual behavior

swagger
swagger
console
console

I think the latest version of drf does not handle ListField correctly. The array type in OpenAPI should come with corresponding items, but AutoSchema in rest_framework.schemas.openapi does not provide items for ListField in _map_field method.
https://github.com/encode/django-rest-framework/blob/master/rest_framework/schemas/openapi.py#L257-L261

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

      0