How to document server sent-event with drf-spectacular

30 Views Asked by At

I am migrating from drf-yasg to drf-spectacular and I am having trouble migrating the documentation for a server sent event / StreamingHttpResponse. This is the code that worked in drf-yasg. How would you write this with drf-spectacular?

class EventStreamData(SwaggerAutoSchema):
    def get_produces(self):
        return ["text/event-stream"]

    def get_consumes(self):
        return ["text/event-stream"]


@api_view(["GET"])
@renderer_classes([EventStreamRenderer]) 
    response = StreamingHttpResponse(event_stream(), content_type="text/event-stream")
    response['Cache-Control'] = 'no-cache'
    return response


swagger_info = extend_schema(methods='GET', auto_schema=EventStreamData, tags=['2. Server Sent Events'],
                                   responses={200: openapi.Response(
                                       description="text/event-stream",
                                       examples={
                                           "text/event-stream":
                                               "data: { "
                                               "'field1': '', "
                                               "'field2': '', "
                                               "'field3': '', "
                                               "'field4': '', "
                                               "}"

                                       })
                                   })
data_stream = swagger_info(data_stream)
0

There are 0 best solutions below