openwisp / django-rest-framework-gis

Geographic add-ons for Django REST Framework. Maintained by the OpenWISP Project.
http://openwisp.org
MIT License
1.08k stars 200 forks source link

Using the BBOX filter creates invalid Open API Schema #291

Open tomdtp opened 11 months ago

tomdtp commented 11 months ago

I have an API view using a BBOX filter:

class ProtectedAreaGeoJSONViewSet(ListAPIView):
    schema = AutoSchema(operation_id_base="ProtectedAreaGeoJSON")

    queryset = Geodata.objects.all()
    bbox_filter_field = "geometry"
    filter_backends = (InBBoxFilter,)

This leads to the generation of this OpenAPI Schema entry:

      - name: in_bbox
        required: false
        in: query
        description: 'Specify a bounding box as filter: in_bbox=min_lon,min_lat,max_lon,max_lat'
        schema:
          type: array
          items:
            type: float
          minItems: 4
          maxItems: 4
          example:
          - 0
          - 0
          - 10
          - 10
        style: form
        explode: false

Which is incorrect, as the type of the array entries should be number and not float.

Any ideas why this is happening?